diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f1b0c3..a0609fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ # This file is automatically generated from cmake.toml - DO NOT EDIT -# See https://github.com/MoAlyousef/cmkr for more information +# See https://github.com/build-cpp/cmkr for more information cmake_minimum_required(VERSION 2.8...3.8) diff --git a/README.md b/README.md index f8e233e..360e40a 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,12 @@ # cmkr -cmkr, pronounced "cmaker", is A CMakeLists.txt generator from TOML. +cmkr, pronounced "cmaker", is a modern build system based on CMake and TOML. It was originally created by [Mohammed Alyousef](https://github.com/MoAlyousef). -See the [cmkr topic](https://github.com/topics/cmkr) for examples. Feel free to add the `cmkr` topic to your projects if you used cmkr! +**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](https://github.com/topics/cmkr) and the [tests](https://github.com/build-cpp/cmkr/tree/main/tests). -## Building - -cmkr requires a C++11 compiler, cmake >= 3.15. - -``` -git clone https://github.com/moalyousef/cmkr -cd cmkr -cmake -Bbin -cmake --build bin --parallel -``` +## Getting started -## Usage - -cmkr parses cmake.toml files (using toml11 by Toru Niina) at the project directory. A basic hello world format with the minimum required fields: +`cmkr` parses `cmake.toml` files and generates a modern, idomatic `CMakeLists.txt` for you. A basic hello world format with the minimum required fields: ```toml [cmake] @@ -32,9 +21,20 @@ type = "executable" sources = ["src/main.cpp"] ``` -**NOTE**: The documentation is currently a work-in-progress due to breaking changes since `0.1.4`. For examples you can check the [cmkr topic](https://github.com/topics/cmkr). +## Building -The cmkr executable can be run from the command-line: +`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`. + +```sh +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] @@ -48,34 +48,8 @@ arguments: 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 cmake build arguments: +The build command invokes `cmake` and the default build-system on your platform (unless a generator is specified), it also accepts extra build arguments: -``` +```sh cmkr build --config Release ``` - -## Binary types - -### executable - -Executable binary. Equivalent to [add_executable(name)](https://cmake.org/cmake/help/latest/command/add_executable.html). - -### library - -Library, can be static or shared depending on the BUILD_SHARED_LIBS variable. Equivalent to [add_library()](https://cmake.org/cmake/help/latest/command/add_library.html). - -### static - -Static library/archive. Equivalent to [add_library(name STATIC)](https://cmake.org/cmake/help/latest/command/add_library.html). - -### shared - -Shared/dynamic library. Equivalent to [add_library(name SHARED)](https://cmake.org/cmake/help/latest/command/add_library.html). - -### interface - -Header-only library. Equivalent to [add_library(name INTERFACE)](https://cmake.org/cmake/help/latest/command/add_library.html). - -## Roadmap - -- Support more cmake fields. diff --git a/cmake/cmkr.cmake b/cmake/cmkr.cmake index d58e6a1..c99ef2b 100644 --- a/cmake/cmkr.cmake +++ b/cmake/cmkr.cmake @@ -1,8 +1,8 @@ include_guard() # Change these defaults to point to your infrastructure if desired -set(CMKR_REPO "https://github.com/MoAlyousef/cmkr" CACHE STRING "cmkr git repository" FORCE) -set(CMKR_TAG "archive_7b7b2603" CACHE STRING "cmkr git tag (this needs to be available forever)" FORCE) +set(CMKR_REPO "https://github.com/build-cpp/cmkr" CACHE STRING "cmkr git repository" FORCE) +set(CMKR_TAG "archive_7cdf36f3" CACHE STRING "cmkr git tag (this needs to be available forever)" FORCE) # Set these from the command line to customize for development/debugging purposes set(CMKR_EXECUTABLE "" CACHE FILEPATH "cmkr executable") diff --git a/src/cmkrlib/gen.cpp b/src/cmkrlib/gen.cpp index e8d33b5..3b2a369 100644 --- a/src/cmkrlib/gen.cpp +++ b/src/cmkrlib/gen.cpp @@ -418,7 +418,7 @@ int generate_cmake(const char *path, bool root) { auto inject_cmake = [&gen](const std::string &cmake) { gen.inject_cmake(cmake); }; comment("This file is automatically generated from cmake.toml - DO NOT EDIT"); - comment("See https://github.com/MoAlyousef/cmkr for more information"); + comment("See https://github.com/build-cpp/cmkr for more information"); endl(); if (root) { diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bafec4d..0c559d8 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # This file is automatically generated from cmake.toml - DO NOT EDIT -# See https://github.com/MoAlyousef/cmkr for more information +# See https://github.com/build-cpp/cmkr for more information # Create a configure-time dependency on cmake.toml to improve IDE support if(CMKR_ROOT_PROJECT)