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.

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.5k
Category
Developer tools and infrastructure
Language
CMake
License
GPL-3.0
Forked
2025-10-12
Sync status
In sync, has own commitsLast synced 2026-09-29