1
0
Fork 0
mirror of https://github.com/TheLartians/ModernCppStarter.git synced 2025-08-30 13:41:13 +02: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
Find a file
Lars Melchior c94580f25c init
2020-04-11 12:31:08 +02:00
.github/workflows init 2020-04-11 12:31:08 +02:00
cmake init 2020-04-11 12:31:08 +02:00
include init 2020-04-11 12:31:08 +02:00
source init 2020-04-11 12:31:08 +02:00
test init 2020-04-11 12:31:08 +02:00
.clang-format init 2020-04-11 12:31:08 +02:00
.gitignore init 2020-04-11 12:31:08 +02:00
CMakeLists.txt init 2020-04-11 12:31:08 +02:00
README.md init 2020-04-11 12:31:08 +02:00

Actions Status Actions Status Actions Status Actions Status

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 via clang-format via 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.