Skip to content

v1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Oct 18:03

CMake Boilerplate v1.0.0 — Initial Release

This is the first versioned release of CMake Boilerplate, a cross-platform C++ build framework and project template designed to simplify project setup, development, testing, packaging, and distribution.

The framework provides a reusable build infrastructure for C++ libraries, runtimes, and applications while preserving access to native CMake targets, properties, and toolchains.

Highlights

  • One-command bootstrap: Detect and provision supported host tools, configure, build, test, and optionally run applications on Windows, Linux, and macOS.
  • Project initialization: Generate standalone C++ projects with renamed targets, presets, package identifiers, and build infrastructure.
  • Composable build model: Reusable library, runtime, application, host, plugin, component, and target-policy abstractions.
  • Build configurations: Support for GCC, Clang, and MSVC, with configurable LTO, PGO, sanitizers, hardening, compiler caching, and cross-compilation.
  • Testing and diagnostics: CTest, property-based testing, fuzzing, coverage, benchmarks, and static-analysis integrations.
  • Native distribution: CPack integration for NSIS, DEB, RPM, DMG, ZIP, and TGZ, plus Arch Linux packages through makepkg.
  • Library distribution: Static and shared library variants, install/export rules, relocatable CMake package configurations, and vcpkg integration.
  • Cross-platform CI: Automated build, test, package, and consumer verification across supported environments.

Requirements and supported platforms

CMake 3.26 or newer is required. The supplied build presets use Ninja. Supported native toolchains include GCC, Clang, and MSVC.

The default C++ language level is C++23, with configurable C++17 and C++20 support.

Optional features may require additional SDKs or tools. Platform-specific packaging requires the corresponding native packaging utilities.

Getting started

On Linux and macOS:

./setup.sh --init MyProject --run

On Windows:

.\setup.ps1 -Init MyProject -Run

Add --package or -Package to produce distribution packages.

The bootstrap uses Bash, PowerShell, and CMake without requiring Python.

vcpkg source distribution

Version 1.0.0 of the example libraries library1 and library2 is available through the project's versioned vcpkg Git registry.

The packages are built from pinned source archives. No precompiled binary packages are distributed.

The registry includes version metadata and a separate baseline commit. Consumers must use the published registry baseline rather than assuming the source release tag is itself a registry baseline.

An independent registry-consumer.zip example is attached to this release. The consumer configuration pins the tested registry revision.

See [vcpkg documentation](https://github.com/cpp20120/cmake_boilerplate/blob/main/vcpkg/README.md) for integration instructions.

Compatibility and upgrade notes

This is the initial versioned release; there are no earlier stable-version migration requirements.

Public CMake APIs, project configuration conventions, and package interfaces introduced here establish the starting point for future compatibility management.

Existing projects using older unversioned boilerplate snapshots may require adjustments when adopting the new project lifecycle and target-policy model.

Security

No CVE remediation is announced as part of this initial release.

For security reporting and supported-version information, see the [Security Policy](https://github.com/cpp20120/cmake_boilerplate/blob/main/SECURITY.md).

Source and reproducibility

Source tag: v1.0.0

Source commit: 60b591ca25b2c58d2ece386b7e649b34138bf5fd

vcpkg Git registry baseline: c9fa94995a45ce1d0c48ba0c7cd5ffcb47c25991

The release's existing SHA512 metadata should be retained to allow verification of the pinned source archive.

Source code and documentation: https://github.com/cpp20120/cmake_boilerplate