- /packageName : Directory name matches the package name.
- Sub directories correspond to libraries.
- Unit tests match their cpp, with the naming convention of *.test.cpp
- Unit tests are registered with ctest
- Headers and C++'s are together
- /apps: Contains executables generated using the packages
- /tests: Contains integration and end to end tests
Dependency management is managed through conan. New dependancies can be added by editing conanfile.txt
CMake uses out of source build directories. In theory these are outside of the project, but can also be in a cmake-build-* directory inside of the source. You kick off a build as follows
mkdir cmake-build-debug
cd cmake-build-debug
conan install .. # --build to build dependancies whose prebuild artifacts aren't available
cmake .. # Use -G Xcode flag for an Xcode project. CLion seems to use the makefile
make all # Build everyting
make test # test everything
On ubuntu, you need to install python pip, cmake and conan sudo apt install python-pip3 cmake pip3 install conan