1
0
mirror of synced 2024-11-09 22:48:53 +01:00
modern-cmake/examples/extended-project
2024-03-26 06:27:52 +00:00
..
apps style: update style 2020-08-03 18:16:52 -04:00
cmake chore: drop 3.11-3.13 for extended-example 2022-10-31 23:38:12 -04:00
docs style: run pre-commit 2022-06-02 14:30:14 -04:00
include/modern style: update style 2020-08-03 18:16:52 -04:00
src style: update style 2020-08-03 18:16:52 -04:00
tests chore: bump catch to 2.13.6 2021-06-24 12:06:36 -04:00
.gitignore Adding extended example 2019-08-07 05:06:55 +00:00
CMakeLists.txt chore: update version to 3.29.0 2024-03-26 06:27:52 +00:00
README.md chore(deps): update pre-commit 2023-03-15 13:34:02 -04:00

This is an example project using CMake.

The requirements are:

  • CMake 3.11 or better; 3.14+ highly recommended.
  • A C++17 compatible compiler
  • The Boost libararies (header only part is fine)
  • Git
  • Doxygen (optional)

To configure:

cmake -S . -B build

Add -GNinja if you have Ninja.

To build:

cmake --build build

To test (--target can be written as -t in CMake 3.15+):

cmake --build build --target test

To build docs (requires Doxygen, output in build/docs/html):

cmake --build build --target docs

To use an IDE, such as Xcode:

cmake -S . -B xbuild -GXcode
cmake --open xbuild

The CMakeLists show off several useful design patterns for CMake.