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.
cmkr/README.md

63 lines
2.4 KiB

4 years ago
# cmkr
`cmkr`, pronounced "cmaker", is a modern build system based on [CMake](https://cmake.org/) and [TOML](https://toml.io).
4 years ago
`cmkr` parses `cmake.toml` files and generates a modern, idiomatic `CMakeLists.txt` for you. A minimal example:
```toml
4 years ago
[project]
4 years ago
name = "cmkr_for_beginners"
description = "A minimal cmkr project."
4 years ago
4 years ago
[target.hello_world]
type = "executable"
4 years ago
sources = ["src/main.cpp"]
```
4 years ago
`cmkr` can bootstrap itself from CMake and consumers of your project do not need to install anything to work with it.
4 years ago
## Getting started
4 years ago
The easiest way to get started is to use the [cmkr_for_beginners](https://github.com/build-cpp/cmkr_for_beginners) template repository. Either open it in [Gitpod](https://gitpod.io/#https://github.com/build-cpp/cmkr_for_beginners), or clone the repository and run:
```sh
4 years ago
cmake -B build
cmake --build build
```
4 years ago
Alternatively you can check out the [cmkr topic](https://github.com/topics/cmkr), the [build-cpp organization](https://github.com/build-cpp) or the [tests](https://github.com/build-cpp/cmkr/tree/main/tests) for more examples and templates. You can also check out the [documentation](https://build-cpp.github.io/cmkr).
4 years ago
### Migrating an existing project
When migrating an existing project it's easiest to download a [cmkr release](https://github.com/build-cpp/cmkr/releases) and put `cmkr` in your PATH. Then go to your project directory and run:
```
cmkr init
```
This will bootstrap `cmake.toml` and `CMakeLists.txt` that you can then build as normal with CMake.
## Command line
4 years ago
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.
```
4 years ago
## Credits
4 years ago
- https://github.com/gulrak/filesystem
- https://github.com/Tessil/ordered-map
- https://github.com/ToruNiina/toml11
4 years ago
- https://github.com/mpark/variant
4 years ago
- https://www.svgrepo.com/svg/192268/hammer