mirror of
https://github.com/TheLartians/ModernCppStarter.git
synced 2025-10-30 17:51:34 +01:00
🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
https://thelartians.github.io/ModernCppStarter
bootstrapcccacheciclang-formatcmakecmakelistscodecovcontinuous-integrationcoveragecppdependency-managerfreegithub-workflowsmodern-cmakemodern-cmake-templateopen-sourcesanitizersstartertemplate
| .github/workflows | ||
| cmake | ||
| include | ||
| source | ||
| test | ||
| .clang-format | ||
| .gitignore | ||
| CMakeLists.txt | ||
| README.md | ||
CMakeStarter
A template for modern C++ libraries and projects.
Features
- Modern CMake practices
- Suited for single header libraries and larger projects
- Integrated test suite
- Preconfigured for continuous integration with multiplatform tests via GitHub Workflows
- Code formatting enforced via clang-format/Format.cmake
- Reliable dependency management that works everywhere via CPM.cmake
Usage
Adjust the template to your needs
- Clone this repo and replace all occurrences of "Greeter" in the CMakeLists.txt with the name of your project
- Replace the source files with your own
- For single-header libraries: see the comments in CMakeLists.txt
- Have fun!
Build and run test suite
Use the following commands from the project's root directory to run the test suite.
cmake -Htest -Bbuild
cmake --build build
CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test
# or simply call the executable:
./build/GreeterTests
Run clang-format
Use the following commands from the project's root directory to run clang-format (must be installed on the host system).
cmake -Htest -Bbuild
# view changes
cmake --build build --target format
# apply changes
cmake --build build --target fix-format
See Format.cmake for more options.
Coming soon
- Code coverage