{"id":19252375,"url":"https://github.com/ssciwr/cookiecutter-cpp-project","last_synced_at":"2026-02-06T15:11:24.319Z","repository":{"id":38085350,"uuid":"318503037","full_name":"ssciwr/cookiecutter-cpp-project","owner":"ssciwr","description":"A cookiecutter for a C++ Project with lots of configuration options","archived":false,"fork":false,"pushed_at":"2026-01-29T13:53:32.000Z","size":335,"stargazers_count":65,"open_issues_count":8,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-29T22:50:23.630Z","etag":null,"topics":["ci","cmake","code-analysis","cookiecutter","cpp","documentation","hacktoberfest","iwr-hacktoberfest","python-bindings"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssciwr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-04T12:00:00.000Z","updated_at":"2026-01-15T19:15:29.000Z","dependencies_parsed_at":"2026-01-19T13:08:17.239Z","dependency_job_id":null,"html_url":"https://github.com/ssciwr/cookiecutter-cpp-project","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ssciwr/cookiecutter-cpp-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcookiecutter-cpp-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcookiecutter-cpp-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcookiecutter-cpp-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcookiecutter-cpp-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssciwr","download_url":"https://codeload.github.com/ssciwr/cookiecutter-cpp-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcookiecutter-cpp-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29166122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T14:37:12.680Z","status":"ssl_error","status_checked_at":"2026-02-06T14:36:22.973Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ci","cmake","code-analysis","cookiecutter","cpp","documentation","hacktoberfest","iwr-hacktoberfest","python-bindings"],"created_at":"2024-11-09T18:26:39.248Z","updated_at":"2026-02-06T15:11:24.313Z","avatar_url":"https://github.com/ssciwr.png","language":"Python","readme":"# Welcome to C++ Project Cookiecutter!\n\nThis repository is a template repository (a cookiecutter) that allows you to quickly\nset up new CMake-based C++ projects. If you are new to C++ and CMake, you might want\nto checkout our simpler [C++ template repository](https://github.com/ssciwr/cpp-project-template).\n\n# Features\n\nThe core features of our C++ Cookiecutter in a nutshell:\n\n* Very simple, configurable setup of a fully functional C++ project\n* Modern CMake implementation based on targets\n* Choose and add a license and copyright statement to your project\n* Ready-to-use integration with the Github Actions and Gitlab CI\n* Generation and deployment of Sphinx-based documentation for [Read the Docs](https://readthedocs.org)\n* Building a Doxygen documentation\n* Setup of Python bindings with Pybind11\n* CI-based deployment of Python wheels to PyPI\n* Generated [pre-commit](https://pre-commit.com/) configuration is added if you have `pre-commit` installed\n* Integration with coverage testing from [codecov.io](https://codecov.io)\n* Based on an established tool: [Cookiecutter](https://github.com/cookiecutter/cookiecutter) has \u003e15k stars on Github!\n\n# Prerequisites\n\nIn order to use this C++ Project Cookiecutter you need the following software installed:\n\n* Python `\u003e= 3.6`\n* [Cookiecutter](https://github.com/cookiecutter/cookiecutter) `\u003e=2.1` e.g. by doing `pip install cookiecutter`.\n* Git `\u003e= 1.8.2`\n\nIn addition, the project that is generated from this cookiecutter will require the following software:\n\n* A C++ compiler, e.g. `g++` or `clang++`\n* CMake `\u003e= 3.23`\n* Doxygen (optional, but recommended)\n\n# Using C++ Project Cookiecutter\n\nSimply run the cookiecutter command line interface:\n\n```\ncookiecutter gh:ssciwr/cookiecutter-cpp-project\n```\n\nThis will start an interactive prompt that will configure and generate your project.\nOne of the prompts will ask you for a remote repository URL, so you should head to\nthe Git hosting service of your choice and add a new empty repository e.g. [on Github](https://github.com/new).\n\n# Configuration\n\nThis cookiecutter accepts the following configuration options:\n\n* `project_name`: The human-readable name of the project, defaults to `My C++ Project`\n* `remote_url`: The remote URL for the newly created repository. This is not only used\n  to add it as a remote to the Git repository, but also to enable integration with some\n  services. Defaults to `None` although we strongly advise you to specify it.\n* `project_slug`: This will be the name of the generated directory. By default, it is deduced\n  from the specified remote URL and the given project name.\n* `full_name`: Author name, defaults to `Your Name`\n* `license` adds a license file to the repository. It can be chosen from [MIT](https://opensource.org/licenses/MIT) (default), [BSD-2](https://opensource.org/licenses/BSD-2-Clause), [GPL-3.0](https://opensource.org/licenses/GPL-3.0), [LGPL-3.0](https://opensource.org/licenses/LGPL-3.0) or it can be omitted.\n* `use_submodules`: Whether `git submodule` should be used to add version-pinned external\n  dependencies (like e.g. the testing framework `Catch2`). If you do not know what git submodules\n  are, you should select `No`.\n* `header_only`: Whether the C++ project is header-only. If `No` is selected, a library will\n  be added to the project. In both cases, a target is exported that dependent projects can\n  link against.\n* `external_dependency`: The name of an external dependency of your library. Defaults to `None`.\n  This will generate the required CMake code for handling of external dependencies. Note that\n  this support will typically not work straight away, as it highly depends on the dependency.\n  See the generated TODO list for hints at what to do. If you have multiple external dependencies\n  add one of them here and then manually add the other ones analoguously.\n* `github_actions_ci`: Whether to add a CI workflow for Github Actions\n* `gitlab_ci`: Whether to add a CI workflow for GitLab CI\n* `readthedocs`: Whether to create a Sphinx-documentation that can automatically be deployed to readthedocs.org\n* `doxygen`: Whether a Doxygen documentation should be extracted from the project\n* `cxx_minimum_standard`: The minimum C++ standard required for this project. It can be chosen from `14` (default), `17`, `20` and `23`.\n  `C++11` and earlier are not supported, because the generated project will depend on libraries that require `C++14` ([Catch2](https://github.com/catchorg/Catch2)\n  for testing and [pybind11](https://github.com/pybind/pybind11) for potential Python bindings).\n* `python_bindings`: Whether to automatically add a PyBind11-based Python binding package.\n* `pypi_release`: Whether to add an automatic PyPI deploy workflow to the CI system.\n  This is currently limited to Github Actions CI as it provides cloud-based runners for all relevant\n  platforms (Linux, MacOS, Windows). A PyPI release is automatically triggered when a release is\n  generated in the Github UI.\n* `codecovio`: Whether an automatic integration with coverage checking from [codecov.io](https://codecov.io)\n  should be set up. This requires an Open Source license in order to be free to use.\n\nIf you are using `cookiecutter-cpp-project` a lot, you can customize your default values\nby providing a `.cookiecutterrc` file in your home directory, for more details see the\n[cookiecutter documentation](https://cookiecutter.readthedocs.io/en/latest/advanced/user_config.html).\n\n# Issues\n\nPlease report any issues you might have with template using [the Github issue\ntracker](https://github.com/ssciwr/cookiecutter-cpp-project/issues)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssciwr%2Fcookiecutter-cpp-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssciwr%2Fcookiecutter-cpp-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssciwr%2Fcookiecutter-cpp-project/lists"}