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 7eed60bc7d
Use dark theme when the system uses dark theme in the documentation
4 years ago
.github/workflows Only upload artifacts for certain operating systems in the matrix 4 years ago
cmake Get rid of hack to hide a warning during bootstrapping on Windows 4 years ago
docs Use dark theme when the system uses dark theme in the documentation 4 years ago
include Allow conditional subdirs 4 years ago
src Switch to using target_sources instead of passing sources directly to add_xxx 4 years ago
tests Switch to using target_sources instead of passing sources directly to add_xxx 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 Use relative paths in the install command to support --prefix 4 years ago
LICENSE Create LICENSE 4 years ago
README.md Add credits for documentation favicon 4 years ago
cmake.toml Use relative paths in the install command to support --prefix 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.

cmkr parses cmake.toml files and generates a modern, idiomatic CMakeLists.txt for you. A minimal example:

[project]
name = "cmkr_for_beginners"
description = "A minimal cmkr project."

[target.hello_world]
type = "executable"
sources = ["src/main.cpp"]

cmkr can bootstrap itself from CMake and consumers of your project do not need to install anything to work with it.

Getting started

The easiest 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

Alternatively you can check out the cmkr topic or the build-cpp organization for more examples and templates.

Command line

Optionally you can install cmkr 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