cmake-start
A generator that creates new CMake projects with a modern, opinionated layout, including install rules, tests and CI setup. It saves time when starting a C or C++ project.
Pick a small issue you can reproduce, then fix it with your AI coding agent.
Share on XLicense: GPL-3.0
Overview
cmake-init is a Python-driven generator that creates new CMake projects with an opinionated layout. The generated projects work with FetchContent, keep consumer and developer targets separate, provide install rules with relocatable CMake packages, and use modern CMake 3.14 or newer. You answer a few prompts to choose an executable, header-only library or static/shared library, so a C or C++ project starts from a sound base.
Key features
- Prompts for executable, header-only, or static/shared library projects
- Generated projects are ready for FetchContent
- Separates developer targets from consumer targets
- Install rules with relocatable CMake packages
- Tooling for clang-format, clang-tidy, coverage and sanitizers
Best for
C and C++ developers who want a correct modern CMake setup from the start instead of copying outdated examples. It follows the author's own opinions about layout.
- Upstream
- friendlyanon/cmake-init
- Fork on GitHub
- Guo-astro/cmake-start
- Upstream stars
- 2.6k
- Category
- Developer tools and infrastructure
- Language
- CMake
- License
- GPL-3.0
- Forked
- 2025-10-12
- Sync status
- In sync, has own commitsLast synced 2026-10-19
More in Developer tools and infrastructure
An open-source TypeScript engine for calculating Zi Wei Dou Shu charts and consulting traditional references. It helps developers build charting and interpretation tools.
Forked 2026-10-18Last synced 2026-10-19License: MITDeveloper tools and infrastructureGitHub
ImHex is a hex editor for inspecting and editing binary files. Reverse engineers, programmers, and forensic users can search and patch bytes or describe file structures with its pattern language.
Forked 2026-10-17Last synced 2026-10-19License: GPL-2.0Developer tools and infrastructureGitHub
Numa is a portable DNS resolver for local development and privacy. It blocks ads, gives local services names like frontend.numa, and runs without depending on a cloud account.
Forked 2026-10-17Last synced 2026-10-19License: MITDeveloper tools and infrastructureGitHub
Handwired turns ordinary JavaScript logic into differentiable neural-network-style calculations, so programs can run as matrix operations in JavaScript or WebGPU. It is for experimenting with GPU execution and optimization of code written in a traditional style.
Forked 2026-10-16Last synced 2026-10-19License: MITDeveloper tools and infrastructureGitHub