Duncan Ogilvie
a9399bfa92
|
4 years ago | |
---|---|---|
.github/workflows | 4 years ago | |
cmake | 4 years ago | |
docs | 4 years ago | |
include | 4 years ago | |
src | 4 years ago | |
tests | 4 years ago | |
third_party | 4 years ago | |
.clang-format | 4 years ago | |
.gitattributes | 4 years ago | |
.gitignore | 4 years ago | |
CMakeLists.txt | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
cmake.toml | 4 years ago |
README.md
cmkr
cmkr, pronounced "cmaker", is a modern build system based on CMake and TOML. It was originally created by Mohammed Alyousef.
NOTE: The documentation is currently a work-in-progress due to breaking changes since 0.1.4
. For examples you can check the cmkr GitHub topic and the tests.
Getting started
cmkr
parses cmake.toml
files and generates a modern, idomatic CMakeLists.txt
for you. A basic hello world format with the minimum required fields:
[cmake]
minimum = "3.15"
[project]
name = "app"
version = "0.1.0"
[target.app]
type = "executable"
sources = ["src/main.cpp"]
Building
cmkr
requires a C++11 compiler and CMake >= ~3.x (exact minimum version is not yet specified). C++11 was picked to allow the broadest possible set of compilers to bootstrap cmkr
.
git clone https://github.com/moalyousef/cmkr
cd cmkr
cmake -Bbin
cmake --build bin --parallel
Command line
The cmkr
executable can be run 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.
The build command invokes cmake
and the default build-system on your platform (unless a generator is specified), it also accepts extra build arguments:
cmkr build --config Release