{"id":15136932,"url":"https://github.com/vvvar/generator-cpp-github","last_synced_at":"2025-06-14T03:37:38.455Z","repository":{"id":154083139,"uuid":"629621217","full_name":"vvvar/generator-cpp-github","owner":"vvvar","description":"Scaffolder for C++ CMake/Conan Project","archived":false,"fork":false,"pushed_at":"2023-05-01T16:32:16.000Z","size":280,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-18T23:05:51.266Z","etag":null,"topics":["cmake","conan","cpp","cpp20","yeoman-generator"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vvvar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.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}},"created_at":"2023-04-18T17:23:43.000Z","updated_at":"2025-03-05T12:58:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"39e18237-4fa5-49ff-9ac3-56381be1f30c","html_url":"https://github.com/vvvar/generator-cpp-github","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/vvvar/generator-cpp-github","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvar%2Fgenerator-cpp-github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvar%2Fgenerator-cpp-github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvar%2Fgenerator-cpp-github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvar%2Fgenerator-cpp-github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vvvar","download_url":"https://codeload.github.com/vvvar/generator-cpp-github/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvar%2Fgenerator-cpp-github/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259755844,"owners_count":22906636,"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","conan","cpp","cpp20","yeoman-generator"],"created_at":"2024-09-26T06:41:51.882Z","updated_at":"2025-06-14T03:37:38.424Z","avatar_url":"https://github.com/vvvar.png","language":"JavaScript","readme":"# generator-cpp-github\n\nGenerator for [Yeoman](https://yeoman.io) that scaffolds cross-platform C++ projects with GitHub and VS Code integrations. [Example](https://github.com/vvvar/generator-cpp-github-example-app).\n\n## Motivation\n\nI like trying new ideas with C++. Setting up a new C++ project for me is so time-consuming that I often find myself spending more time configuring it than actually coding. On top of that, I tend to skip quality tools such as unit testing, SCA and linting in the early stages and then suffer to make them work with already-existing code base.\nTo address all that, I've made this generator. For myself. With technologies that I am often using. With structure that makes sense best to me. Then I thought it could be useful for somebody. So here it is.\n\n## Installation\n\nPre-requisites:\n- [Node.js 18.16.0+](https://nodejs.org/en/download)\n- [Yeoman 4.3.1+](https://yeoman.io)\n- [VS Code 1.77.3+](https://code.visualstudio.com)\n\n```sh\nnpm install -g generator-cpp-github\n```\n\n## Usage\n\n### Generate C++ Application into the current dir\n\n```sh\nyo cpp-github:app\ncode .\n```\n\nSee an [example](https://github.com/vvvar/generator-cpp-github-example-app) of the project that has been generated with it.\n\n### Generate C++ Library into the current dir\n\n```sh\nyo cpp-github:lib\ncode .\n```\n\nSee an [example](https://github.com/vvvar/generator-cpp-github-example-lib) of the project that has been generated with it.\n\n### Validate project folder structure\n\n```sh\nyo cpp-github:[type] --validate\n```\n\nThis will check that your folder structure is the same as in the reference template.\n\n## Tech Stack of the project that it will generate\n\n- [C++20](https://en.cppreference.com/w/cpp/20)\n- macOS([apple-clang 14](https://opensource.apple.com/source/clang/clang-23/clang/tools/clang/docs/UsersManual.html)), Linux([gcc 9](https://gcc.gnu.org/gcc-9/changes.html)) and Windows([MSVC 193](https://learn.microsoft.com/en-us/visualstudio/releases/2019/history))\n- [just](https://github.com/casey/just)\n- [Conan 2.0](https://docs.conan.io/2/)\n- [CMake](https://cmake.org) + [ccache](https://ccache.dev) + [Ninja](https://ninja-build.org)(on all platforms)\n- [GoogleTest](https://github.com/google/googletest)\n- [clang-format](https://clang.llvm.org/docs/ClangFormat.html)\n- [Sonar Lint](https://www.sonarsource.com/products/sonarlint)\n- [cppcheck](https://cppcheck.sourceforge.io)\n- [Python 3](https://www.python.org) + [black](https://black.readthedocs.io/en/stable/)\n- [Homebrew](https://brew.sh), [Chocolatey](https://chocolatey.org) and [Apt](https://wiki.debian.org/Apt)\n- [GitHub Action](https://docs.github.com/en/actions)\n- [Docker](https://www.docker.com)\n- [VS Code](https://code.visualstudio.com) + [Grammarly](https://marketplace.visualstudio.com/items?itemName=znck.grammarly) + [CodeWhisper](https://aws.amazon.com/codewhisperer/)\n- [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) license is generated by default just to have something. Not enforced\n\n## Philosophy\n\n- Use existing open-source tools as much as possible. Minimize custom solutions\n- Prefer tools that are easy to set up over highly-customizable complex tools\n- Prefer cross-toolchain tools over toolchain-specific solutions. Example - SonarLint over clang-tidy\n- The project is as self-contained as possible. If something is needed to be installed/configured by the developer - there should be a task to do it within the project. Exception - task runner itself and basics such as git\n- Everything should be usable from the local machine. No \"CI-specific\" solutions. Local ease of use is a priority\n- Thin CI-integration. CI just executes the same tasks that the developer can execute locally\n- Latest C++ standard\n- Code-style is enforced\n- Unit-testing is enforced\n- Maximum possible SCA and linter strictness is enforced\n- Dependencies should be versioned(where possible)\n- If something is unused then it should be removed\n- VS Code is the editor of choice. However, editor-independent solutions are preferred\n- You should be able to build, test, debug and analyze the project without the editor. CLI solutions are preferred\n- macOS, Linux and Windows are the target platforms\n- [Trunk-based development](https://trunkbaseddevelopment.com)\n- Forbid merge into the `main` unless PR passed all quality checks on a CI\n- Squash merge strategy. Every commit in the `main` is self-contained\n- Every commit in the `main` branch is a release candidate\n- Every commit in the `main` branch has the unique version\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvvar%2Fgenerator-cpp-github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvvvar%2Fgenerator-cpp-github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvvar%2Fgenerator-cpp-github/lists"}