Skip to content

serious-scaffold/ss-cpp

Repository files navigation

Serious Scaffold Cpp

A continuously evolving basic template for cpp development.

Documentation License SS Cpp

CI CD Renovate 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, Release, RelWithDebInfo(Default), 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.
  • Documentation generation with doxygen and sphinx theme furo.
  • 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.