# Compiled Object files
*.slo
*.lo
*.o
*.obj
*.os
*.scons*

# Compiled Dynamic libraries
*.so
lib*.so*
*.dylib
*.dll
*.so.1

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Dependency file
*.d

# Mac swap file
*.DS_Store

# Linux swap file
*.swp

# Exclude compiled executables
/examples/SampleProducer
/examples/SampleProducerCApi
/examples/SampleConsumer
/examples/SampleConsumerCApi
/examples/SampleAsyncProducer
/examples/SampleConsumerListener
/examples/SampleConsumerListenerCApi
/examples/SampleReaderCApi
/tests/main
/perf/perfProducer
/perf/perfConsumer
/system-test/SystemTest

# IDE generated files
.csettings
.cproject
.project
.settings/
.pydevproject
.idea/
.vs/
*.cbp
*.ninja*
.clangd/
compile_commands.json

# doxygen files
apidocs/

# generated files
generated/

# CMAKE
Makefile
cmake_install.cmake
CMakeFiles
CMakeCache.txt

pulsar-dist
install_manifest.txt
merged-library
python/venv
