mirror of
https://github.com/TheLartians/ModernCppStarter.git
synced 2025-12-18 04:24:36 +03:00
812d740b4d88f48b051b14765cbd32f158be70c2
Greeter
A best-practice git template for modern C++ libraries and projects.
Features
- Modern CMakeLists.txt
- Suited for single header libraries and larger projects
- Creates a library that can be installed or included locally
- Integrated test suite
- Code formatting enforced via clang-format/Format.cmake
- Continuous integration via GitHub Workflows
- Reliable dependency management via CPM.cmake
- Check compiler warnings
Roadmap
- Add code coverage checks
- Add a script to automatically rename project / switch to single-header mode
Usage
Adjust the template to your needs
- Copy this repo and replace all occurrences of "Greeter" in the CMakeLists and Readme with project's name.
- Note the comments in the CMakeLists for single-header libraries
- Have fun!
Build and run 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
cmake -Htest -Bbuild
# view changes
cmake --build build --target format
# apply changes
cmake --build build --target fix-format
See Format.cmake for more options.
Description
🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
bootstrapcccacheciclang-formatcmakecmakelistscodecovcontinuous-integrationcoveragecppdependency-managerfreegithub-workflowsmodern-cmakemodern-cmake-templateopen-sourcesanitizersstartertemplate
Readme
Unlicense
930 KiB
Languages
CMake
72%
C++
28%