You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Duncan Ogilvie 8ea0c7396c
Merge pull request #19 from build-cpp/project-refactor
4 years ago
.github/workflows Add a check to see whether cmkr was run before pushing 4 years ago
cmake Get rid of hack to hide a warning during bootstrapping on Windows 4 years ago
docs Add docs placeholder for pages 4 years ago
include Merge cmkrlib into the cmkr target 4 years ago
src Add a check to see whether cmkr was run before pushing 4 years ago
tests Simplify default conditions 4 years ago
third_party Preserve ordering and switch target syntax to use tables 4 years ago
.clang-format WIP DSL for generating cmake 4 years ago
.gitattributes Merge cmkrlib into the cmkr target 4 years ago
.gitignore Fix warnings on AppleClang 12 4 years ago
CMakeLists.txt Merge cmkrlib into the cmkr target 4 years ago
LICENSE Create LICENSE 4 years ago
README.md Move all links to the new organization 4 years ago
cmake.toml Merge cmkrlib into the cmkr target 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