- CMake as main build system for C++ project
- Format cpp files by clang-format
- Format cmake files by cmake-format
- Documentation by MkDocs with Github Pages.
- Dracula as main theme of MkDocs
- Catch2 as main testing framework
- Parse git tag and automatic version header generation.
- Static Analyzers by cppcheck and clang-tidy.
- Project configuration by Kconfiglib, Tips
All requirements are optional.
Formatting Requirements
pip install cmake-format
sudo apt install clang-format
Documentation Requirements
pip install mkdocs mkdocs-material pymdown-extensions mkdocs-dracula-theme
Kconfig Requirements
pip install kconfiglib
Testing Requirements
- Install appropriate version of Catch2.
Static Analyzers Requirements
sudo apt install cppcheck clang-tidy
make initialize PROJECT_NAME=$(PROJECT_NAME) # set PROJECT_NAME name without "".
- Change cmake/cpp-cmake-templateConfig.cmake.in to cmake/$(PROJECT_NAME)Config.cmake.in
- Change include/cpp-cmake-template to include/$(PROJECT_NAME)
- Replace 'cpp-cmake-template' to '$(PROJECT_NAME)' of CMakeLists.txt
Go to the settings of your repository and ensure that the publishing source branch for your GitHub Page is set to gh-pages
mkdir -p build && cd build
cmake .. -DBUILD_EXAMPLE=ON
cmake --build .
make run_examples # if you want to run all examples
mkdir -p build && cd build
cmake .. -DBUILD_TESTING=ON
cmake --build .
ctest # or make test
This project is licensed under the BSD-3-Clause - see the LICENSE file for details
timetravelCat - [email protected]