# friendlyanon/cmake-init

The missing CMake project initializer

Repository: https://github.com/friendlyanon/cmake-init
Canonical: https://ross.abutalabs.com/products/cmake-init
Language: CMake
License: GPL-3.0
License Family: copyleft
Topics: cmake, python, cpp, executable, shared-library, static-library, header-only, scaffolding, boilerplate, testing, ci, cppcheck, clang-tidy, vcpkg, c, clang-format, static-analysis, coverage, codespell, conan
Last push: 2026-04-15T17:12:19+00:00

## Health v2 (maintenance only)
Score: 64/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 77, release rhythm 28, longevity 100
- inputs: {"age_days": 1970, "days_push": 140, "days_rel": 562, "gap_med": 35, "n_releases_24m": 4}
- flags: prerelease_only
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2542, forks 95 (observed 2026-08-28T04:06:59.367210+00:00)

## What it is
cmake-init is an opinionated command-line tool that scaffolds modern CMake projects for executables, static/shared libraries, and header-only libraries. Generated projects come with FetchContent support, install rules, relocatable packages, testing, CI, and integrations for tools like clang-tidy, clang-format, sanitizers, vcpkg, and conan.

## Use cases
- initialize a new C++ CMake project
- scaffold a header-only C++ library with modern CMake
- generate a CMake project with tests and CI preconfigured
- set up a CMake project with clang-tidy and clang-format
- create a FetchContent-ready CMake library
- bootstrap a C project with static analysis and coverage
- avoid writing CMake boilerplate from scratch

## When to choose
- starting a new C or C++ project that uses CMake
- you want modern CMake (3.14+) best practices out of the box
- you need install rules, relocatable packages, and developer/consumer target separation
- you want built-in testing, CI, and static analysis tooling in a new project

## When to avoid
- retrofitting an existing CMake project rather than creating a new one
- you need a non-opinionated or highly customized CMake setup
- your project uses a build system other than CMake

## Facets
- artifact type: cli-tool
- maturity: active
- function: build-tool, developer-tools, boilerplate, testing, ci-cd
- domain: developer-tools
- platform: cli, cross-platform, python
- tags: cmake, project-scaffolding, cpp, c, vcpkg, conan, clang-tidy, clang-format, static-analysis, code-coverage, fetchcontent, header-only-library, command-line

## Member repositories
- friendlyanon/cmake-init (main) score 64

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:59.367210+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:25:06.920340+00:00, confidence not recorded.
  - readme: https://github.com/friendlyanon/cmake-init (fetched 2026-08-28T04:06:59.367210+00:00, sha aa04bfdcd9e3)
- Data as of 2026-08-30T08:39:29.467469+00:00.
