Duncan Ogilvie
3a1298f4e8
|
2 years ago | |
---|---|---|
.github | 3 years ago | |
cmake | 2 years ago | |
docs | 2 years ago | |
include | 2 years ago | |
src | 2 years ago | |
tests | 2 years ago | |
third_party | 4 years ago | |
.clang-format | 4 years ago | |
.gitattributes | 4 years ago | |
.gitignore | 4 years ago | |
CMakeLists.txt | 2 years ago | |
LICENSE | 4 years ago | |
README.md | 3 years ago | |
cmake.toml | 2 years ago |
README.md
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 ❤️