Skip to content

cookiecutter template for autotools-powered C++ software package, with various quirks mixed in

License

Notifications You must be signed in to change notification settings

lightning-auriga/cookiecutter-cxx-software

 
 

Repository files navigation

Cookiecutter CXX Software

Cookiecutter template for an autotools-powered C++ software package with certain add-ons.

Features

  • 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

Requirements

  • cookiecutter and dependencies
  • if using the conda installation option: an available instance of conda

Installation

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]

Notes

  • 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 using mamba instead. you would proceed as above installing conda, but then use conda install mamba to install mamba into your base environment. then you can instead use mamba env create -f cookiecutter-cxx-software/environment.yaml above.

Version History

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

About

cookiecutter template for autotools-powered C++ software package, with various quirks mixed in

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • M4 50.6%
  • Shell 35.4%
  • C++ 10.9%
  • Makefile 3.1%