# Object files
*.o
*.ko
*.obj
*.elf
*.cbor

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
a.bat

# Debug files
*.dSYM/

# emacs files
*#
*~
\#*

Debug
Release

# CMAKE FILES
CMakeFiles
CMakeCache.txt
Makefile
*.cmake
build

# Visual Studio files
*.sdf
*.sln
*.suo
*.vcxproj
*.vcxproj.filters
*.vcxproj.user
*.opensdf
*.VC.db
*.VC.opendb
.vs
.vscode

# CMake and CTest directories
project_cn-cbor-prefix
project_mbedtls-prefix
Testing
dist
test/test.cbor
*.tcl

# Coverity
cov-int

# Doxygen
html
latex
doxygen.bat
