A modern C++ project template with CMake, CI/CD setup, and essential dependencies for rapid project bootstrapping.
C++/CMake modern boilerplate is a template project that provides a pre-configured foundation for starting new C++ applications. It sets up a modern CMake build system, includes essential dependencies like libfmt and spdlog, and integrates CI/CD pipelines for automated testing and code coverage. The template solves the problem of repetitive setup and helps developers adopt best practices in build configuration and project structure.
C++ developers starting new projects who want a robust, modern CMake setup without manual configuration. It's also suitable for those learning CMake best practices or updating legacy build systems.
Developers choose this boilerplate because it offers a production-ready CMake configuration out-of-the-box, reduces initial setup time, and includes curated scripts and dependencies that align with modern C++ development standards. Its educational aspect helps users understand and customize their build processes effectively.
A small c++ template with modern CMake
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a clean, up-to-date CMake 3.x configuration that serves as both a practical template and an educational resource for learning best practices.
Pre-configured with GitHub Actions, AppVeyor, Codecov, and CDash for automated testing and reporting across platforms, reducing setup time.
Includes handy scripts in the cmake/ folder for warnings, LTO, DLL copying, and test coverage, which can be copied to other projects for efficiency.
Bundles doctest for lightweight unit testing, making it easy to add and run tests from the start without additional configuration.
Comes with submodules for essential libraries like libfmt and spdlog, which are easily removable if not needed, offering a solid starting point.
Relies on Git submodules for dependencies, which can be cumbersome to update and manage compared to modern package managers like Vcpkg or CPM.
The extensive setup with multiple CI providers and scripts adds significant initial configuration that may be unnecessary for small or experimental codebases.
Configured for C++14 by default, requiring manual changes to adapt to other C++ standards like C++17 or C++20, which might not be straightforward.
While educational, the boilerplate assumes some familiarity with CMake, and beginners might find the advanced scripts and configurations overwhelming without prior experience.