1
0
Fork 0
mirror of https://github.com/TheLartians/ModernCppStarter.git synced 2025-08-30 21:51:12 +02:00
ModernCppStarter/README.md
2020-04-11 19:36:36 +02:00

2 KiB

Actions Status Actions Status Actions Status Actions Status

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