# thelartians/moderncppstarter

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/thelartians-moderncppstarter).**

5,306 stars · 481 forks · CMake · unlicense

## Links

- GitHub: https://github.com/TheLartians/ModernCppStarter
- Homepage: https://thelartians.github.io/ModernCppStarter
- awesome-repositories: https://awesome-repositories.com/repository/thelartians-moderncppstarter.md

## Topics

`bootstrap` `c` `ccache` `ci` `clang-format` `cmake` `cmakelists` `codecov` `continuous-integration` `coverage` `cpp` `dependency-manager` `free` `github-workflows` `modern-cmake` `modern-cmake-template` `open-source` `sanitizers` `starter` `template`

## Description

ModernCppStarter is a pre-configured project boilerplate and bootstrapping environment for C++ libraries and executables. It provides a standardized set of CMake build configurations and templates to automate the initialization of new projects.

The project integrates a comprehensive static analysis suite and documentation automation. It includes systems for enforcing code quality through sanitizers and analyzers, as well as a pipeline for generating and deploying technical documentation during project releases.

The template covers broader development infrastructure, including dependency management, automated testing with code coverage, and continuous integration pipelines. It also incorporates build performance optimizations through compilation caching and automated code formatting enforcement.

## Tags

### Development Tools & Productivity

- [Project Boilerplates](https://awesome-repositories.com/f/development-tools-productivity/project-boilerplates.md) — Provides a pre-configured project template with integrated build systems and automation for C++.
- [C++ Project Templates](https://awesome-repositories.com/f/development-tools-productivity/project-bootstrapping-tools/c-project-templates.md) — Provides a pre-configured boilerplate and bootstrapping environment to automate the initialization of new C++ projects. ([source](https://cdn.jsdelivr.net/gh/thelartians/moderncppstarter@master/README.md))
- [Build Orchestration](https://awesome-repositories.com/f/development-tools-productivity/build-orchestration.md) — Uses CMake to provide a standardized meta-build system for cross-platform compilation and flag management.
- [Build Configurations](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-configuration-systems/build-configurations.md) — Ships a set of CMake scripts for managing compilation, dependency resolution, and installation.
- [Code Quality and Analysis](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis.md) — Integrates a comprehensive suite of static analyzers and sanitizers to enforce coding standards and detect bugs during the build process. ([source](https://thelartians.github.io/ModernCppStarter))
- [Code Formatting Tools](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-formatting-tools.md) — Enforces consistent source and build file styles using integrated automated formatting tools. ([source](https://cdn.jsdelivr.net/gh/thelartians/moderncppstarter@master/README.md))
- [Dependency Management](https://awesome-repositories.com/f/development-tools-productivity/development-environment-management/development-environments/language-specific-tooling/c-development-environments/dependency-management.md) — Retrieves and integrates external libraries to ensure consistent and reproducible C++ builds.

### DevOps & Infrastructure

- [Project Templates](https://awesome-repositories.com/f/devops-infrastructure/ci-cd-pipelines/project-templates.md) — Provides an automated workflow template for running tests, coverage, and formatting for C++.
- [CI CD Pipelines](https://awesome-repositories.com/f/devops-infrastructure/ci-cd-pipelines.md) — Automates testing, coverage monitoring, and documentation deployment for C++ projects.
- [Continuous Integration Pipelines](https://awesome-repositories.com/f/devops-infrastructure/continuous-integration-pipelines.md) — Automates the execution of test suites and coverage monitoring within the CI pipeline. ([source](https://cdn.jsdelivr.net/gh/thelartians/moderncppstarter@master/README.md))
- [Documentation Automation](https://awesome-repositories.com/f/devops-infrastructure/documentation-automation.md) — Automates the generation and deployment of technical documentation during the release process.

### Content Management & Publishing

- [Documentation Generators](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/documentation-tooling/generation-publishing/documentation-generators.md) — Automatically extracts technical documentation from source code comments using Doxygen.

### Software Engineering & Architecture

- [GitHub Actions](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/ci-cd-integrations/github-actions.md) — Provides GitHub Actions workflows to automate building, testing, and formatting checks.
- [Library Dependency Managers](https://awesome-repositories.com/f/software-engineering-architecture/library-compatibility-managers/library-dependency-managers.md) — Implements CPM for downloading and configuring external git repositories during the build phase.
- [Build Performance Optimization](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/build-bundle-optimization/build-performance-optimization.md) — Implements compilation caching to reduce redundant work and minimize build durations across repeated cycles. ([source](https://thelartians.github.io/ModernCppStarter))

### Testing & Quality Assurance

- [Code Coverage Analysis](https://awesome-repositories.com/f/testing-quality-assurance/code-coverage-analysis.md) — Executes test suites and collects code coverage data to verify project correctness. ([source](https://thelartians.github.io/ModernCppStarter))
- [Code Quality Analyzers](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/code-quality-tools/code-quality-analyzers.md) — Uses static analyzers, sanitizers, and formatters to ensure a consistent and bug-free C++ codebase.
- [Static Analysis](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/static-analysis.md) — Provides integrated Clang-Tidy analysis to identify bug-prone patterns and enforce C++ coding standards.
- [Static and Dynamic Analysis Suites](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/static-analysis/static-and-dynamic-analysis-suites.md) — Includes an integrated suite of sanitizers and static analyzers to detect bugs during builds.
- [Test Suite Execution](https://awesome-repositories.com/f/testing-quality-assurance/test-suite-execution.md) — Uses CTest to run test suites and collect code coverage through standardized interface hooks.

### Part of an Awesome List

- [Project Templates](https://awesome-repositories.com/f/awesome-lists/devtools/project-templates.md) — Starter template with CI, coverage, and dependency management.
