# 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

apache-pulsar-client-cpp-*.tar.gz

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

# Files generated from templates by CMAKE
include/pulsar/Version.h

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

# doxygen files
apidocs/
doxygen/

# generated files
generated/

# CMAKE
.cmake
Makefile
cmake_install.cmake
CMakeFiles
CMakeCache.txt
# cmake files generated by CLion
/cmake-build-*

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

# Visual Studio files
out/
CMakeSettings.json

# vcpkg dependencies directory
vcpkg_installed/


*.orig
*.rej
.tests-container-id.txt
Testing
.test-token.txt
