A continuously evolving basic template for cpp development.
- Project setup and template update with copier.
- Containerization for development and deployment with dev container.
- Continuous Integration with GitHub Actions.
- Automate dependency updates with Renovate.
- Fully featured vcpkg integration.
- Supports baseline autoupdate.
- Supports manifest export mode and build offline.
- Supports vcpkg port/triplet/toolchain customization.
- Supports vcpkg triplet auto-detection.
- Supports vcpkg feature test.
- Supports auto loads of vcpkg triplet and toolchain variables.
- Build with cmake integration.
- Provides sorts of cmake
presets
. - Provides vcpkg automatic installation or use existing vcpkg installation.
- Provides
static/runtime analysis
including clang-tidy, cppcheck, sanitizers, valgrind. - Supports
code coverage
with lcov, gcovr, llvm-cov, and opencppcoverage. - Supports
hardening compilation
for MSVC, Clang, and GCC. - Provides compile, header, application target generation.
- Build with preset build types: Debug, Release, RelWithDebInfo(Default), MinSizeRel.
- Supports package managers: vcpkg, conan, and cpm.
- Provides sorts of cmake
- Use cmake-registry to provide various cmake modules and scripts.
- Lint tool
pre-commit
integration with various linters, including clang-format, codespell, markdownlint, and more. - Handy Makefile for local development.
- Documentation generation with sphinx[furo] or mkdocs[material].
- Automatic release workflow with semantic-release.
- Maintainable documentation guides for configuration, development, security and contribution based on ss-cpp.
MIT License, for more details, see the LICENSE file.