/mimic

A library and CLI app for rendering C++ project templates.

Primary LanguageCMakeBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Modern C++ Template

A quick C++ template for modern CMake projects, aimed to be an easy to use starting point.

This is my personal take on such a type of template, thus I might not use the best practices or you might disagree with how I do things. Any and all feedback is greatly appreciated!

Features

  • Modern CMake configuration and project, which, to the best of my knowledge, uses the best practices and the Modern CMake practices
  • Suited for single header libraries and projects of any scale
  • Options to build as a header-only library, static library or shared library.
  • Package manager support, via CPM.cmake, to reproducible dependency management
  • Unit testing support through doctest
  • TODO: Installable target with automatic versioning information and header generation via PackageProject.cmake
  • TODO: CI workflows for Windows, Linux and MacOS using GitHub Actions
  • TODO: Code coverage, enabled by using the ENABLE_CODE_COVERAGE option, through Codecov CI integration codecov
  • Code formatting enforced by clang-format and cmake-format via Format.cmake
  • TODO: Static analyzers integration
  • TODO: Ccache integration, for speeding up rebuild times