{"id":13608236,"url":"https://github.com/build-cpp/cmkr","last_synced_at":"2025-04-12T14:32:32.369Z","repository":{"id":40625419,"uuid":"294007736","full_name":"build-cpp/cmkr","owner":"build-cpp","description":"Modern build system based on CMake and TOML.","archived":false,"fork":false,"pushed_at":"2024-04-15T01:08:36.000Z","size":837,"stargazers_count":368,"open_issues_count":34,"forks_count":26,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-04-20T08:56:34.263Z","etag":null,"topics":["beginner-friendly","build-system","cmake","cmkr","cpp","hacktoberfest","modern-cmake","modern-cpp","toml"],"latest_commit_sha":null,"homepage":"https://cmkr.build","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/build-cpp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["mrexodia"]}},"created_at":"2020-09-09T05:02:12.000Z","updated_at":"2024-05-31T21:43:52.533Z","dependencies_parsed_at":"2023-02-09T22:15:28.088Z","dependency_job_id":"3f73cee5-45c2-441a-9934-5f06de526f08","html_url":"https://github.com/build-cpp/cmkr","commit_stats":null,"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/build-cpp%2Fcmkr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/build-cpp%2Fcmkr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/build-cpp%2Fcmkr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/build-cpp%2Fcmkr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/build-cpp","download_url":"https://codeload.github.com/build-cpp/cmkr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248581344,"owners_count":21128150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beginner-friendly","build-system","cmake","cmkr","cpp","hacktoberfest","modern-cmake","modern-cpp","toml"],"created_at":"2024-08-01T19:01:25.425Z","updated_at":"2025-04-12T14:32:31.534Z","avatar_url":"https://github.com/build-cpp.png","language":"C++","readme":"# cmkr\n\n`cmkr`, pronounced \"cmaker\", is a modern build system based on [CMake](https://cmake.org/) and [TOML](https://toml.io).\n\n`cmkr` parses `cmake.toml` files and generates a modern, idiomatic `CMakeLists.txt` for you. A minimal example:\n\n```toml\n[project]\nname = \"cmkr_for_beginners\"\n\n[target.hello_world]\ntype = \"executable\"\nsources = [\"src/main.cpp\"]\n```\n\n`cmkr` can bootstrap itself and you only need CMake and a C++ compiler to use it.\n\n## Getting started\n\nTo get started, run the following commands from your project directory:\n\n```sh\ncurl https://raw.githubusercontent.com/build-cpp/cmkr/main/cmake/cmkr.cmake -o cmkr.cmake\ncmake -P cmkr.cmake\n```\n\nAfter the bootstrapping process finishes, customize [`cmake.toml`](https://build-cpp.github.io/cmkr/cmake-toml) for your project and run CMake:\n\n```sh\ncmake -B build\ncmake --build build\n```\n\nOnce bootstrapped, `cmkr` does not introduce extra steps to your workflow. After modifying `cmake.toml` you simply build/configure your CMake project and `cmkr` will automatically regenerate `CMakeLists.txt` when necessary.\n\n\u003csub\u003e**Note**: The `cmake.toml` project file, generated `CMakeLists.txt` and `cmkr.cmake` bootstrapping script are all intended to be added to source control.\u003c/sub\u003e\n\nIn CI environments the `cmkr` bootstrapping process is skipped, so there is no additional overhead in your pipelines.\n\n## Template repositories\n\nAnother 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:\n\n```sh\ncmake -B build\ncmake --build build\n```\n\nCheck 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.\n\n## Command line\n\nOptionally you can put a [`cmkr` release](https://github.com/build-cpp/cmkr/releases) in your `PATH` and use it as a utility from the command line:\n\n```\nUsage: cmkr [arguments]\narguments:\n    init    [executable|library|shared|static|interface] Create a project.\n    gen                                                  Generates CMakeLists.txt file.\n    build   \u003cextra cmake args\u003e                           Run cmake and build.\n    install                                              Run cmake --install.\n    clean                                                Clean the build directory.\n    help                                                 Show help.\n    version                                              Current cmkr version.\n```\n\n## Credits\n\n- [gulrak/filesystem](https://github.com/gulrak/filesystem)\n- [Tessil/ordered-map](https://github.com/Tessil/ordered-map)\n- [ToruNiina/toml11](https://github.com/ToruNiina/toml11)\n- [mpark/variant](https://github.com/mpark/variant)\n- [SVG Repo Hammer](https://www.svgrepo.com/svg/192268/hammer)\n- [can1357](https://github.com/can1357) for buying `cmkr.build` ❤️\n- [JustasMasiulis](https://github.com/JustasMasiulis) for fixing the dark theme ❤️\n","funding_links":["https://github.com/sponsors/mrexodia"],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuild-cpp%2Fcmkr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuild-cpp%2Fcmkr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuild-cpp%2Fcmkr/lists"}