cmkr
                                
                                 cmkr copied to clipboard
                                
                                    cmkr copied to clipboard
                            
                            
                            
                        Modern build system based on CMake and TOML.
cmkr
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.
Getting started
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.cmake
After the bootstrapping process finishes, modify cmake.toml and open the project in your favorite IDE or build with CMake:
cmake -B build
cmake --build build
Once 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.
Template repositories
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 build
Check out the cmkr topic, the build-cpp organization or the tests for more examples and templates.
Command line
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.
Credits
- https://github.com/gulrak/filesystem
- https://github.com/Tessil/ordered-map
- https://github.com/ToruNiina/toml11
- https://github.com/mpark/variant
- https://www.svgrepo.com/svg/192268/hammer
- https://github.com/can1357 for buying cmkr.build❤️
- https://github.com/JustasMasiulis for fixing the dark theme ❤️