# C/C++ build outputs
.build/
bins
gens
libs
objs

# Python items
cython_debug/
python_build/
.coverage*
.eggs
htmlcov/
dist/
*.egg
py27/
py34/

# Node installation output
node_modules
src/node/extension_binary/

# gcov coverage data
reports
coverage
*.gcno

# profiler output
*.prof

# python compiled objects
*.pyc

#eclipse project files
.cproject
.project
.settings

# cache for run_tests.py
.run_tests_cache
.preprocessed_build

# emacs temp files
*~

# vim temp files
.*.swp

# Makefile's cache
cache.mk

# Ruby's local gem information
Gemfile.lock

# Temporary test reports
report.xml
latency_trace.txt
latency_trace.*.txt

# port server log
portlog.txt

# gyp generated make files
*-gyp.mk
out

# YCM config files
.ycm_extra_conf.py

# XCode
^build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
*.DS_Store

# Objective-C generated files
*.pbobjc.*
*.pbrpc.*

# Cocoapods artifacts
# Podfile.lock and the workspace file are tracked, to ease deleting them. That's
# needed to trigger "pod install" to rerun the preinstall commands.
Pods/

# Artifacts directory
artifacts/

# Git generated files for conflicting
*.orig

# IDE specific folder for JetBrains IDEs
.idea/
