{"id":16284581,"url":"https://github.com/derthorsten/cpp_cookiecutter","last_synced_at":"2025-03-20T02:31:09.344Z","repository":{"id":41867029,"uuid":"122845565","full_name":"DerThorsten/cpp_cookiecutter","owner":"DerThorsten","description":"A cookiecutter template for a modern C++ project with python bindings","archived":false,"fork":false,"pushed_at":"2022-07-25T08:12:21.000Z","size":5824,"stargazers_count":32,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T22:41:06.717Z","etag":null,"topics":["cmake","cookiecutter","cookiecutter-c-plus-plus","cookiecutter-python3","cookiecutter-template","cpp","cpp-library","cpp14","pybind11","xtensor"],"latest_commit_sha":null,"homepage":"http://cpp-cookiecutter.readthedocs.io","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DerThorsten.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-25T14:53:38.000Z","updated_at":"2024-08-07T17:39:13.000Z","dependencies_parsed_at":"2022-09-25T13:34:54.451Z","dependency_job_id":null,"html_url":"https://github.com/DerThorsten/cpp_cookiecutter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerThorsten%2Fcpp_cookiecutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerThorsten%2Fcpp_cookiecutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerThorsten%2Fcpp_cookiecutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerThorsten%2Fcpp_cookiecutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DerThorsten","download_url":"https://codeload.github.com/DerThorsten/cpp_cookiecutter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244041583,"owners_count":20388265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","cookiecutter","cookiecutter-c-plus-plus","cookiecutter-python3","cookiecutter-template","cpp","cpp-library","cpp14","pybind11","xtensor"],"created_at":"2024-10-10T19:19:58.465Z","updated_at":"2025-03-20T02:31:08.789Z","avatar_url":"https://github.com/DerThorsten.png","language":"CMake","readme":"=================================================\nCpp Cookiecutter\n=================================================\n\n\n.. image:: https://readthedocs.org/projects/cpp-cookiecutter/badge/?version=latest\n    :target: https://cpp-cookiecutter.readthedocs.io/en/latest/?badge=latest\n    :alt: Documentation Status\n      \n\n.. image:: https://travis-ci.org/DerThorsten/cpp_cookiecutter.svg?branch=master\n    :target: https://travis-ci.org/DerThorsten/cpp_cookiecutter\n\n.. image:: https://circleci.com/gh/DerThorsten/cpp_cookiecutter/tree/master.svg?style=svg\n    :target: https://circleci.com/gh/DerThorsten/cpp_cookiecutter/tree/master\n\n.. image:: https://dev.azure.com/derthorstenbeier/cpp_cookiecutter/_apis/build/status/DerThorsten.cpp_cookiecutter?branchName=master\n    :target: https://dev.azure.com/derthorstenbeier/cpp_cookiecutter/_build/latest?definitionId=1\u0026branchName=master\n\n\n\n\nDemo Project\n------------------------\nHave a look at `github.com/DerThorsten/cpptools \u003chttps://github.com/DerThorsten/cpptools\u003e`_, an\nunmodified example project created with this cpp_cookiecutter.\n\nFeatures\n--------\n\nCurrent features include: \n    * Readme on `readthedocs.org \u003chttps://cpp-cookiecutter.readthedocs.io/en/latest/\u003e`_\n    * Modern C++ 14\n    * Build system with modern CMake\n    * `preconfigured conda recipe included \u003chttps://cpp-cookiecutter.readthedocs.io/en/latest/conda_recipe.html\u003e`_\n    * Rendered projects have pre-configured CI scripts for: travis-ci circleci and azure-pipelines\n    * Rendering of projects itself is tested on several continuous integration plattforms as `travis-ci \u003chttps://travis-ci.org/DerThorsten/cpp_cookiecutter\u003e`_ `circleci \u003chttps://circleci.com/gh/DerThorsten/cpp_cookiecutter/tree/master\u003e`_ and `azure-pipelines \u003chttps://dev.azure.com/derthorstenbeier/cpp_cookiecutter/_build/latest?definitionId=1\u0026branchName=master\u003e`_\n    * `C++ unit tests with cpp doctest \u003chttps://cpp-cookiecutter.readthedocs.io/en/latest/unit_tests.html\u003e`_\n    * `Benchmark code with google benchmark \u003chttps://cpp-cookiecutter.readthedocs.io/en/latest/benchmark.html\u003e`_\n    * Docs with sphinx breathe and readthedocs support\n    * `Google Benchmark \u003chttps://cpp-cookiecutter.readthedocs.io/en/latest/benchmark.html\u003e`_ and `Doctest \u003chttps://cpp-cookiecutter.readthedocs.io/en/latest/unit_tests.html\u003e`_ are downloaded at cmake-config time via external-projects \n      since these dependencies are just for testing and benchmarking (and those are not yet available on conda)\n    * bumpversion\n    * `Python bindings are created via pybind11 \u003chttps://cpp-cookiecutter.readthedocs.io/en/latest/python.html\u003e`_\n    * An demo project `github.com/DerThorsten/cpptools \u003chttps://github.com/DerThorsten/cpptools\u003e`_ created by this cookiecutter, and automatically kept up to date via continuous integration\n   \n\n.. _rtd_unit_test:\n\n\n\n\n\n\nUsage:\n--------\n\nInstall _cookiecutter \n\n.. code-block:: shell\n\n    $ pip install cookiecutter\n\n\nAfter installing cookiecutter, use the cpp-cookiecutter:\n\n.. code-block:: shell\n\n    $ cookiecutter https://github.com/DerThorsten/cpp_cookiecutter\n\n\nThis cookiecutter is bet used in conjunction with conda:\nAssuming your package is named cpptools the following script\nshows the usage of the generated project cookiecutter on Linux/MacOS\n\n.. code-block:: shell\n\n    cd cpptools\n    conda env create -f cpptools-dev-requirements.yml\n    source activate cpptools-dev-requirements\n    mkdir build\n    cd build\n    cmake ..\n    make -j2\n    make cpp-test\n    make python-test\n    cd examples\n    ./hello_world\n    cd ..\n    cd benchmark\n    ./benchmark_cpptools\n\n\nOn a windows machine this looks like:\n\n.. code-block:: shell\n\n    cd cpptools\n    call activate cpptools-dev-requirements\n    mkdir build\n    cd build\n    cmake .. -G\"Visual Studio 15 2017 Win64\" -DCMAKE_BUILD_TYPE=Release  ^\n          -DDEPENDENCY_SEARCH_PREFIX=\"%CONDA_PREFIX%\\Library\" -DCMAKE_PREFIX_PATH=\"%CONDA_PREFIX%\\Library\"\n    call activate cpptools-dev-requirements\n    cmake --build . --target ALL_BUILD\n    cmake --build . --target python-test\n    cmake --build . --target cpp-test\n\n.. code-block:: shell\n\n    cd cpptools\n    call activate cpptools-dev-requirements\n    mkdir build\n    cd build\n    cmake .. -G\"Visual Studio 15 2017 Win64\" -DCMAKE_BUILD_TYPE=Release  ^\n          -DDEPENDENCY_SEARCH_PREFIX=\"%CONDA_PREFIX%\\Library\" -DCMAKE_PREFIX_PATH=\"%CONDA_PREFIX%\\Library\"\n    call activate cpptools-dev-requirements\n    cmake --build . --target ALL_BUILD\n    cmake --build . --target python-test\n    cmake --build . --target cpp-test\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderthorsten%2Fcpp_cookiecutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderthorsten%2Fcpp_cookiecutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderthorsten%2Fcpp_cookiecutter/lists"}