A quick C++ template for modern CMake projects, aimed to be an easy to use starting point.
This is my personal take on such a type of template, thus I might not use the best practices or you might disagree with how I do things. Any and all feedback is greatly appreciated!
- Modern CMake configuration and project, which, to the best of my knowledge, uses the best practices and the Modern CMake practices
- Suited for single header libraries and projects of any scale
- Options to build as a header-only library, static library or shared library.
- Package manager support, via CPM.cmake, to reproducible dependency management
- Unit testing support through doctest
- TODO: Installable target with automatic versioning information and header generation via PackageProject.cmake
- TODO: CI workflows for Windows, Linux and MacOS using GitHub Actions
- TODO: Code coverage, enabled by using the
ENABLE_CODE_COVERAGE
option, through Codecov CI integration codecov - Code formatting enforced by clang-format and cmake-format via Format.cmake
- TODO: Static analyzers integration
- TODO: Ccache integration, for speeding up rebuild times