{"id":21653618,"url":"https://github.com/karnkaul/cpp17","last_synced_at":"2026-04-15T18:02:20.555Z","repository":{"id":133375038,"uuid":"216282791","full_name":"karnkaul/CPP17","owner":"karnkaul","description":"C++17 skeleton project featuring GitHub CI integration using CMake 3.15+, g++ 8, clang 8 and ninja 1.8+","archived":false,"fork":false,"pushed_at":"2019-10-20T17:17:31.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T04:34:40.059Z","etag":null,"topics":["automated-ci","ci","ci-integration","clang","cmake","cpp","cpp17","github-workflow","lld","llvm","ninja"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/karnkaul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-10-19T23:28:24.000Z","updated_at":"2019-10-20T17:16:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"c76307c1-bf1d-4679-aa77-7c9ec8a55585","html_url":"https://github.com/karnkaul/CPP17","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/karnkaul/CPP17","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karnkaul%2FCPP17","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karnkaul%2FCPP17/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karnkaul%2FCPP17/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karnkaul%2FCPP17/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karnkaul","download_url":"https://codeload.github.com/karnkaul/CPP17/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karnkaul%2FCPP17/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31853279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"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":["automated-ci","ci","ci-integration","clang","cmake","cpp","cpp17","github-workflow","lld","llvm","ninja"],"created_at":"2024-11-25T08:19:34.168Z","updated_at":"2026-04-15T18:02:20.532Z","avatar_url":"https://github.com/karnkaul.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPP17\n\n![](https://github.com/karnkaul/CPP17/workflows/CI/badge.svg)\n[![Licence](https://img.shields.io/github/license/karnkaul/CPP17)](LICENSE)\n\nCPP17 is intended to serve as a base skeleton/framework for C++17 projects with the following features:\n1. Configures via CMake\n1. Integrates with GitHub Workflows for CI, which uses Ubuntu 18.04 and installs following to build:\n\t1. cmake (3.15+)\n\t1. g++-8\n\t1. ninja (1.8+)\n\t1. (Optional) clang-8, lld-8\n\n## Usage\n### Build Sample\n#### Clone the repository\n```\ngit clone https://github.com/karnkaul/CPP17\n```\n\n#### Use CMake to generate a build directory in `out/...` using `Source`\nCommand line:\n```\nCONFIG=Debug\t# Or Release / RelWithDebInfo / etc\ncmake -G Ninja . -Bout/$CONFIG -DCMAKE_BUILD_TYPE=$CONFIG\n```\nGUI:\n1. Select repo root as Source directory\n1. Select `out/...` as the Build directory (config subdirectory not required for IDE project generators)\n1. Click Configure\n1. For single-configuration generators: enter the desired value for `CMAKE_BUILD_TYPE`\n1. Click Generate\n\n#### Build the project:\nIf using IDE project generators, open the generated project/solution/workspace in the corresponding IDE and build `BUILD_ALL`.\n\nCommand line:\n```\ncmake --build out/$CONFIG\n```\n### Use as Base Setup\n1. Fork the repository in into your own account\n1. Follow **Build Sample** to ensure project works\n1. Replace with your source code and CMake files\n\n## GitHub\nAll GitHub related files are in `.github`:\n1. `workflows/ci.yml` sets up the overall workflow; edit the `on:` sections to adjust automated build triggers\n1. `CI/pre-build.sh` sets up the build environment; optionally pass \"TRUE\" to also install `clang` and `llvm`\n1. `CI/build-config.sh` builds the config passed as the first argument (`Release` if empty); pass \"TRUE\" as the second argument to use `/usr/bin/clang++`\n\n### GitHub Branch Protections\nIn repository settings, select \"Branches\" and set up protections for branch wildcards to enable:\n1. Prevention of branch deletions / force pushes\n1. Require status checks to pass\n\t1. After a CI Action has run, it will appear as an option here (to be selected as \"Required\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarnkaul%2Fcpp17","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarnkaul%2Fcpp17","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarnkaul%2Fcpp17/lists"}