Skip to content

A test-driven C++ & Python project template built on CMake and Catch2 with support for CI/CD and cross compiling.

License

Notifications You must be signed in to change notification settings

practicalci/cookiecutter-cpp

 
 

Repository files navigation

A test-driven C++ project template built on CMake, Catch2 and conan.

A test-driven multimodule C++ project template build with CMake with support for python bindings, using pybind11 and/or swig and crafted for TDD development cycle using Catch2 for C++ and Python unittest.

This project template, uses a by convention aproach, which modules are defined by just replicating a folder structured, and named by the forlder name. Those convensions will apply and be reflected in python package structure and C++ include and library structure.

Usage

pip install cookiecutter>=1.6.0
cookiecutter gh:practicalci/cookiecutter-cpp

Cookiecutter options

context parameter Description defaults
author organization name of the organization that owns the project "practicalci"
author author of the project "First Last"
email email of the author "<author>|replace(' ','.')|lower }}@gmail.com"
licensing license license type under wh the software is licensed one of {"MIT", "BSD-2-Clause", "BSD-3-Clause", "LGPL-2.1-only", "Apache-2.0", "GPL-2.0-only", "GPL-3.0-only", "LGPL-3.0-only", "Not licensed"}
year year of the license 2019
project project_name name of the project "rock"
description one phrase describing the project, used in packaging description "A rock solid project"
long_description a more detailed description of the project added to the README.rst of the project "A rock solid project with enforced style, testing and static analysis"
project_slug name used in the project folder and part of the python package structure "<project_name>|lower|replace(' ', '_')"
project_namespace name used as a project namespace, namely C++ namespace, and python root package "<organization>|first|lower"
version project version "0.0.0"
cpp_standard C++ language standard one of {"11","14","17","20","23","98"}
check_style enable code check style? true
git git_server git server url one of {"bitbucket.org", "github.com"}
username git user name, part of the git url "<author>|first|lower<author>.split()|last|lower"
branch git active branch "master"
remote git remote "origin"

References

About

A test-driven C++ & Python project template built on CMake and Catch2 with support for CI/CD and cross compiling.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CMake 54.9%
  • Shell 21.6%
  • C++ 19.2%
  • Python 3.8%
  • Dockerfile 0.5%