cmkr, pronounced "cmaker", is a modern build system based on CMake and TOML.
cmkr parses cmake.toml files and generates a modern, idiomatic CMakeLists.txt for you. A minimal example:
[project] name = "cmkr_for_beginners" [target.hello_world] type = "executable" sources = ["src/main.cpp"]cmkr can bootstrap itself from CMake and you only need CMake to use it.
To get started run the following commands from your project directory:
curl https://raw.githubusercontent.com/build-cpp/cmkr/main/cmake/cmkr.cmake -o cmkr.cmake cmake -P cmkr.cmakeAfter the bootstrapping process finishes, modify cmake.toml and open the project in your favorite IDE or build with CMake:
cmake -B build cmake --build buildOnce bootstrapped, cmkr does not introduce extra steps to your workflow. After modifying cmake.toml you simply build/configure your CMake project and cmkr will automatically regenerate CMakeLists.txt.
In CI settings the cmkr bootstrapping process is skipped so there is no extra configure-time overhead in your pipelines.
Another way to get started is to use the cmkr_for_beginners template repository. Either open it in Gitpod, or clone the repository and run:
cmake -B build cmake --build buildCheck out the cmkr topic, the build-cpp organization or the tests for more examples and templates.
Optionally you can put a cmkr release in your PATH and use it as a utility from the command line:
Usage: cmkr [arguments] arguments: init [executable|library|shared|static|interface] Starts a new project in the same directory. gen Generates CMakeLists.txt file. build <extra cmake args> Run cmake and build. install Run cmake --install. Needs admin privileges. clean Clean the build directory. help Show help. version Current cmkr version.