Cookiecutter template for an autotools-powered C++ software package with certain add-ons.
- GitHub repo
- released under the MIT License
- integration with autotools
- optional support for automated testing via TAP/automake and
make check
- optional support for boost headers and certain compiled libraries (notably program_options for UI); easily extensible to others
- optional support for yaml-cpp
- cookiecutter and dependencies
- if using the conda installation option: an available instance of
conda
Installation is supported for conda
; this is certainly not required, and if you have a version of cookiecutter around otherwise, feel free to use it as you see fit.
- if you wish to use
conda
and it's not currently available, you can install it with the instructions here - get a copy of the template repository (if you don't have
git
available, you can download it in your browser and unpack the tarball wherever you want it):git clone --branch default https://github.com/lightning-auriga/cookiecutter-cxx-software
- create the
conda
environment for installation as follows:conda env create -f cookiecutter-cxx-software/environment.yaml
- activate the conda environment:
conda activate cookiecutter-cxx-software-env
- navigate to the directory in which you want to create a new project directory
- run
cookiecutter
on the template, and respond to the user prompts:cookiecutter [/path/to/cookiecutter-cxx-software]
- when prompted for "repo_name", choose something that is a valid and unique C++ namespace name. limit yourself to
[A-Z][a-z]_
and you should be fine - if, like me, you sometimes have issues with
conda
taking an absurdly long time to resolve environments and dependencies, you can try usingmamba
instead. you would proceed as above installingconda
, but then useconda install mamba
to installmamba
into your base environment. then you can instead usemamba env create -f cookiecutter-cxx-software/environment.yaml
above.
11 August 2023: incremental updates and improved yaml-cpp detection
05 January 2021: ported to GitHub: hello world!
04 January 2021: v1.1.0 release: linting and commitizen added
30 December 2020: initial development