================
Cookiecutter C++
================
.. image:: https://circleci.com/gh/grhawk/cookiecutter-cpp.svg?style=shield
:target: https://circleci.com/gh/grhawk/cookiecutter-cpp
:alt: Build Status
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!
.. _Cookiecutter: https://github.com/cookiecutter/cookiecutter
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`_.
.. _`cookiecutter-pypackage tutorial`: https://cookiecutter-pypackage.readthedocs.io/en/latest/tutorial.html
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
------------
1. Fork the project.
2. Edit whatever you feel like.
3. Describe the changes on the "unreleased" tag in the CHANGELOG.md.
4. 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.
.. _Circleci: http://circleci.com/
.. _Tox: http://testrun.org/tox/
.. _Doxigen: http://doxigen.org/
.. _Read the Docs: https://readthedocs.io/
.. _`pyup.io`: https://pyup.io/
.. _bump2version: https://github.com/c4urself/bump2version
.. _Punch: https://github.com/lgiordani/punch
.. _Poetry: https://python-poetry.org/
.. _PyPi: https://pypi.python.org/pypi
.. _Mkdocs: https://pypi.org/project/mkdocs/
.. _Conan: https://docs.conan.io/1/index.html
.. _CMake-Conan-Integration: https://github.com/conan-io/cmake-conan
.. _hdoc: https://hdoc.io/
.. _CLI11: https://github.com/CLIUtils/CLI11
.. _spdlog: https://github.com/gabime/spdlog
.. _CLion: https://www.jetbrains.com/clion/
.. _Catch2: https://github.com/catchorg/Catch2
.. _GoogleTest: https://github.com/google/googletest
.. _`Nekroze/cookiecutter-pypackage`: https://github.com/Nekroze/cookiecutter-pypackage
.. _`tony/cookiecutter-pypackage-pythonic`: https://github.com/tony/cookiecutter-pypackage-pythonic
.. _`ardydedase/cookiecutter-pypackage`: https://github.com/ardydedase/cookiecutter-pypackage
.. _`lgiordani/cookiecutter-pypackage`: https://github.com/lgiordani/cookiecutter-pypackage
.. _`briggySmalls/cookiecutter-pypackage`: https://github.com/briggySmalls/cookiecutter-pypackage
.. _`veit/cookiecutter-namespace-template`: https://github.com/veit/cookiecutter-namespace-template
.. _`zillionare/cookiecutter-pypackage`: https://zillionare.github.io/cookiecutter-pypackage/
.. _github comparison view: https://github.com/tony/cookiecutter-pypackage-pythonic/compare/audreyr:master...master
.. _`network`: https://github.com/audreyr/cookiecutter-pypackage/network
.. _`family tree`: https://github.com/audreyr/cookiecutter-pypackage/network/members
Raw data
{
"_id": null,
"home_page": "https://github.com/grhawk/cookiecutter-cpp.git",
"name": "cookiecutter-cpp",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "cookiecutter,template,package,c++,cpp,gtest,spdlog",
"author": "Riccardo Petraglia (forked from https://github.com/audreyr/cookiecutter-pypackage)",
"author_email": "riccardo.petraglia@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/23/92/3b66fd33b8e60565b76c77c1183a93d27f1a0964da4be991c9dce2a2e4c9/cookiecutter-cpp-3.2.1.tar.gz",
"platform": null,
"description": "================\nCookiecutter C++\n================\n\n.. image:: https://circleci.com/gh/grhawk/cookiecutter-cpp.svg?style=shield\n :target: https://circleci.com/gh/grhawk/cookiecutter-cpp\n :alt: Build Status\n\nCookiecutter_ template for a C++ package.\n\n* GitHub repo: https://github.com/grhawk/cookiecutter-cpp/\n* Documentation (this is for cookiecutter-pypackage): https://cookiecutter-pypackage.readthedocs.io/\n* Free software: BSD license\n\n\nCredits\n-------\nThis is basically a fork of Cookiecutter_.\n\n\nFeatures\n--------\n\n* Managing dependencies with Conan_, the CMake-Conan-Integration_, and CLion_.\n* Integration with the Conan plugin of CLion_.\n* No need to execute Conan_ commands (everything run with CMake).\n* Provide the possibility to choose between the unit test framework Catch2_ and GoogleTest_.\n* Provide CLI11_ out-of-the-box (if requested).\n* Provide spdlog_ out-of-the-box (if requested).\n* Circleci_: Ready for Circleci Continuous Integration testing\n* hdoc_ documentation: TODO!\n* bump2version_: TODO!\n\n.. _Cookiecutter: https://github.com/cookiecutter/cookiecutter\n\n\nQuickstart\n----------\n\nInstall the latest Cookiecutter if you haven't installed it yet (this requires\nCookiecutter 1.4.0 or higher)::\n\n pip install -U cookiecutter\n\nGenerate a Python package project::\n\n cookiecutter https://github.com/grhawk/cookiecutter-cpp.git\n\nEnter the newly generated folder. Make sure the Conan_ profile is configured::\n\n conan profile list\n\nIf you don't have a Conan_ profile, you can create one with `conan profile detect --force`.\nAt this point, according to CMake-Conan-Integration_, you can run::\n\n mkdir build && cd build;\n cmake -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=cmake/conan_provider.cmake ..\n cmake --build .\n\nThis will prepare the needed C++ libraries and compile the example code.\nYou can now test the compiled code::\n\n ./sandbox/cpp_boilerplate-sandbox\n\nand run the unittests::\n\n ctest\n\n\nThe created folder is already a git repo that you can push on github and has already a basic CI implemented to test\nthe code with CircleCI.\n\nFor more details, see the `cookiecutter-pypackage tutorial`_.\n\n.. _`cookiecutter-pypackage tutorial`: https://cookiecutter-pypackage.readthedocs.io/en/latest/tutorial.html\n\n\nNot Exactly What You Want?\n--------------------------\n\nDon't worry, you have options:\n\nFork This / Create Your Own\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you have differences in your preferred setup, I encourage you to fork this\nto create your own version. Or create your own; it doesn't strictly have to\nbe a fork.\n\n* Once you have your own version working, add it to the Similar Cookiecutter\n Templates list above with a brief description.\n\n* It's up to you whether or not to rename your fork/own version. Do whatever\n you think sounds good.\n\nContributing\n------------\n\n1. Fork the project.\n2. Edit whatever you feel like.\n3. Describe the changes on the \"unreleased\" tag in the CHANGELOG.md.\n4. Create a Merge Request to the `main` branch.\n\nOnce a new branch has been merged, it is enough to create a new semver tag to generate a new version of the cookiecutter repo.\n\n\n.. _Circleci: http://circleci.com/\n.. _Tox: http://testrun.org/tox/\n.. _Doxigen: http://doxigen.org/\n.. _Read the Docs: https://readthedocs.io/\n.. _`pyup.io`: https://pyup.io/\n.. _bump2version: https://github.com/c4urself/bump2version\n.. _Punch: https://github.com/lgiordani/punch\n.. _Poetry: https://python-poetry.org/\n.. _PyPi: https://pypi.python.org/pypi\n.. _Mkdocs: https://pypi.org/project/mkdocs/\n.. _Conan: https://docs.conan.io/1/index.html\n.. _CMake-Conan-Integration: https://github.com/conan-io/cmake-conan\n.. _hdoc: https://hdoc.io/\n.. _CLI11: https://github.com/CLIUtils/CLI11\n.. _spdlog: https://github.com/gabime/spdlog\n.. _CLion: https://www.jetbrains.com/clion/\n.. _Catch2: https://github.com/catchorg/Catch2\n.. _GoogleTest: https://github.com/google/googletest\n\n.. _`Nekroze/cookiecutter-pypackage`: https://github.com/Nekroze/cookiecutter-pypackage\n.. _`tony/cookiecutter-pypackage-pythonic`: https://github.com/tony/cookiecutter-pypackage-pythonic\n.. _`ardydedase/cookiecutter-pypackage`: https://github.com/ardydedase/cookiecutter-pypackage\n.. _`lgiordani/cookiecutter-pypackage`: https://github.com/lgiordani/cookiecutter-pypackage\n.. _`briggySmalls/cookiecutter-pypackage`: https://github.com/briggySmalls/cookiecutter-pypackage\n.. _`veit/cookiecutter-namespace-template`: https://github.com/veit/cookiecutter-namespace-template\n.. _`zillionare/cookiecutter-pypackage`: https://zillionare.github.io/cookiecutter-pypackage/\n.. _github comparison view: https://github.com/tony/cookiecutter-pypackage-pythonic/compare/audreyr:master...master\n.. _`network`: https://github.com/audreyr/cookiecutter-pypackage/network\n.. _`family tree`: https://github.com/audreyr/cookiecutter-pypackage/network/members\n\n\n\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Cookiecutter template for C++ with several libs ready to be used.",
"version": "3.2.1",
"project_urls": {
"Homepage": "https://github.com/grhawk/cookiecutter-cpp.git"
},
"split_keywords": [
"cookiecutter",
"template",
"package",
"c++",
"cpp",
"gtest",
"spdlog"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "de6c05e90a03a3e3517828050b78797412a3d42670513eb51e8d9af5fe465de2",
"md5": "4e1c7fdc2f08aca64f00b87dfdbb2e3f",
"sha256": "bac8460d78d86777a2420a79f402eb6aa95c3688897dac8a29b2e60f686d2944"
},
"downloads": -1,
"filename": "cookiecutter_cpp-3.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4e1c7fdc2f08aca64f00b87dfdbb2e3f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 4209,
"upload_time": "2024-01-03T00:54:29",
"upload_time_iso_8601": "2024-01-03T00:54:29.071449Z",
"url": "https://files.pythonhosted.org/packages/de/6c/05e90a03a3e3517828050b78797412a3d42670513eb51e8d9af5fe465de2/cookiecutter_cpp-3.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "23923b66fd33b8e60565b76c77c1183a93d27f1a0964da4be991c9dce2a2e4c9",
"md5": "c095b75d48174ac6c17a53eba92d9d1b",
"sha256": "94ad8533dd23c57e2662ba084be6af656836f2950ee371af84756cfeead42194"
},
"downloads": -1,
"filename": "cookiecutter-cpp-3.2.1.tar.gz",
"has_sig": false,
"md5_digest": "c095b75d48174ac6c17a53eba92d9d1b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4266,
"upload_time": "2024-01-03T00:54:34",
"upload_time_iso_8601": "2024-01-03T00:54:34.625415Z",
"url": "https://files.pythonhosted.org/packages/23/92/3b66fd33b8e60565b76c77c1183a93d27f1a0964da4be991c9dce2a2e4c9/cookiecutter-cpp-3.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-03 00:54:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "grhawk",
"github_project": "cookiecutter-cpp",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"circle": true,
"appveyor": true,
"tox": true,
"lcname": "cookiecutter-cpp"
}