Cookiecutter template for C++ with several libs ready to be used.
Project description
Cookiecutter template for a C++ package.
GitHub repo: https://github.com/grhawk/cookiecutter-cpp/
Documentation (this is for cookiecutter-pypackage): https://cookiecutter-pypackage.readthedocs.io/
Free software: BSD license
Credits
This is basically a fork of Cookiecutter.
Features
Managing dependencies with Conan, the CMake-Conan-Integration, and CLion.
Integration with the Conan plugin of CLion.
No need to execute Conan commands (everything run with CMake).
Provide the possibility to choose between the unit test framework Catch2 and GoogleTest.
Provide CLI11 out-of-the-box (if requested).
Provide spdlog out-of-the-box (if requested).
Circleci: Ready for Circleci Continuous Integration testing
hdoc documentation: TODO!
bump2version: TODO!
Quickstart
Install the latest Cookiecutter if you haven’t installed it yet (this requires Cookiecutter 1.4.0 or higher):
pip install -U cookiecutter
Generate a Python package project:
cookiecutter https://github.com/grhawk/cookiecutter-cpp.git
Enter the newly generated folder. Make sure the Conan profile is configured:
conan profile list
If you don’t have a Conan profile, you can create one with conan profile detect –force. At this point, according to CMake-Conan-Integration, you can run:
mkdir build && cd build; cmake -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=cmake/conan_provider.cmake .. cmake --build .
This will prepare the needed C++ libraries and compile the example code. You can now test the compiled code:
./sandbox/cpp_boilerplate-sandbox
and run the unittests:
ctest
The created folder is already a git repo that you can push on github and has already a basic CI implemented to test the code with CircleCI.
For more details, see the cookiecutter-pypackage tutorial.
Not Exactly What You Want?
Don’t worry, you have options:
Fork This / Create Your Own
If you have differences in your preferred setup, I encourage you to fork this to create your own version. Or create your own; it doesn’t strictly have to be a fork.
Once you have your own version working, add it to the Similar Cookiecutter Templates list above with a brief description.
It’s up to you whether or not to rename your fork/own version. Do whatever you think sounds good.
Contributing
Fork the project.
Edit whatever you feel like.
Describe the changes on the “unreleased” tag in the CHANGELOG.md.
Create a Merge Request to the main branch.
Once a new branch has been merged, it is enough to create a new semver tag to generate a new version of the cookiecutter repo.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.