Welcome to Serious Scaffold Cpp’s documentation#

A continuously evolving basic template for cpp development.

Documentation License SS Cpp

CI CD Renovate Semantic Release codecov Release

pre-commit clang-format cmake-format codespell markdownlint shellcheck

Features#

  • 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 analysisincluding 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(Default), Release, RelWithDebInfo, MinSizeRel.

    • Supports package managers: vcpkg, conan, and cpm.

  • 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.

License#

MIT License, for more details, see the LICENSE file.

Content#

Indices and tables#