Extension of TheLartians/ModernCppStarter https://github.com/TheLartians/ModernCppStarter
Find a file
2020-04-11 19:36:36 +02:00
.github/workflows fix workflows 2020-04-11 12:35:55 +02:00
cmake init 2020-04-11 12:31:08 +02:00
include is sstream really always required? 2020-04-11 12:59:41 +02:00
source seriously?! 2020-04-11 12:55:57 +02:00
test document sstream inclusion 2020-04-11 13:09:35 +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 Update README.md 2020-04-11 19:36:36 +02:00

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