https://github.com/build-cpp/cmkr Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} build-cpp / cmkr Public * * Notifications * Fork 26 * Star 389 * Modern build system based on CMake and TOML. cmkr.build License MIT license 389 stars 26 forks Branches Tags Activity Star Notifications * Code * Issues 34 * Pull requests 0 * Discussions * Actions * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Security * Insights build-cpp/cmkr This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit message Last commit date Latest commit History 455 Commits .github .github cmake cmake docs docs include include src src tests tests third_party third_party .clang-format .clang-format .editorconfig .editorconfig .gitattributes .gitattributes .gitignore .gitignore CMakeLists.txt CMakeLists.txt LICENSE LICENSE README.md README.md cmake.toml cmake.toml View all files Repository files navigation * README * MIT license cmkr cmkr, pronounced "cmaker", is a modern build system based on CMake and TOML. cmkr parses cmake.toml files and generates a modern, idiomatic CMakeLists.txt for you. A minimal example: [project] name = "cmkr_for_beginners" [target.hello_world] type = "executable" sources = ["src/main.cpp"] cmkr can bootstrap itself and you only need CMake and a C++ compiler to use it. Getting started To get started, run the following commands from your project directory: curl https://raw.githubusercontent.com/build-cpp/cmkr/main/cmake/cmkr.cmake -o cmkr.cmake cmake -P cmkr.cmake After the bootstrapping process finishes, customize cmake.toml for your project and run CMake: cmake -B build cmake --build build Once 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. [Note: The cmake.toml project file, generated CMakeLists.txt and cmkr.cmake bootstrapping script are all intended to be added to source control.] In CI environments the cmkr bootstrapping process is skipped, so there is no additional overhead in your pipelines. Template repositories Another 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 Check out the cmkr topic, the build-cpp organization or the tests for more examples and templates. Command line Optionally you can put a cmkr release in your PATH and use it as a utility from the command line: Usage: cmkr [arguments] arguments: init [executable|library|shared|static|interface] Create a project. gen Generates CMakeLists.txt file. build Run cmake and build. install Run cmake --install. clean Clean the build directory. help Show help. version Current cmkr version. Credits * gulrak/filesystem * Tessil/ordered-map * ToruNiina/toml11 * mpark/variant * SVG Repo Hammer * can1357 for buying cmkr.build [?] * JustasMasiulis for fixing the dark theme [?] About Modern build system based on CMake and TOML. cmkr.build Topics toml cmake cpp modern-cpp build-system beginner-friendly hacktoberfest modern-cmake cmkr Resources Readme License MIT license Activity Custom properties Stars 389 stars Watchers 9 watching Forks 26 forks Report repository Releases 48 v0.2.29 Latest Apr 15, 2024 + 47 releases Sponsor this project Sponsor Learn more about GitHub Sponsors Contributors 8 * * * * * * * * Languages * C++ 85.3% * CMake 14.7% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.