{"id":18654018,"url":"https://github.com/thebashpotato/cpp-mono-repo-cmake-template","last_synced_at":"2026-01-25T10:32:53.048Z","repository":{"id":256648304,"uuid":"850094304","full_name":"thebashpotato/cpp-mono-repo-cmake-template","owner":"thebashpotato","description":"Templated cmake project for cross-platform C++ development","archived":false,"fork":false,"pushed_at":"2025-08-22T04:40:59.000Z","size":105,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-30T14:40:43.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CMake","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/thebashpotato.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,"zenodo":null}},"created_at":"2024-08-30T21:42:19.000Z","updated_at":"2025-08-22T04:41:02.000Z","dependencies_parsed_at":"2024-09-12T07:37:57.054Z","dependency_job_id":"32bb3720-c27e-43c9-b375-2b814b315918","html_url":"https://github.com/thebashpotato/cpp-mono-repo-cmake-template","commit_stats":null,"previous_names":["thebashpotato/cmake-template","thebashpotato/cpp-cmake-template","thebashpotato/cpp-mono-repo-cmake-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/thebashpotato/cpp-mono-repo-cmake-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebashpotato%2Fcpp-mono-repo-cmake-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebashpotato%2Fcpp-mono-repo-cmake-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebashpotato%2Fcpp-mono-repo-cmake-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebashpotato%2Fcpp-mono-repo-cmake-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thebashpotato","download_url":"https://codeload.github.com/thebashpotato/cpp-mono-repo-cmake-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebashpotato%2Fcpp-mono-repo-cmake-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28751816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":[],"created_at":"2024-11-07T07:13:47.065Z","updated_at":"2026-01-25T10:32:53.016Z","avatar_url":"https://github.com/thebashpotato.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cross Platform CMake Template\n\nTemplated cmake project for cross-platform C++ development\n\n\u003e A simplified and customized version of Jason Turners [C++ best practices template](https://github.com/cpp-best-practices/cmake_template)\n\n## About\n\n- Supports Clang, GNU, and MSVC toolchains (Compiles on Linux, MacOS and Windows out of the box).\n- Uses clang-format with Microsoft style.\n- Setup in a workspace style, where the top level CMakeLists.txt delegates lower level cmake files to clearly seperate shared/static libraries and exectubles. Great for mono repos.\n- All static analyzers/tooling is setup (clang-tidy, cpp-check, include what you use) as well as santizers.\n- Uses [CPM](https://github.com/cpm-cmake/CPM.cmake) for package management.\n- Uses the googletest unit-testing/mocking library.\n- Utilizes a `.vscode/tasks.json` for compiling and running tests, and a `.vscode/launch.json` for debugging. VScode, Neovim, and Emacs can all use these files. (The two latter have plugins). You can also use the commands as examples to use in a Makefile.\n- Also provides a `CMakePresets.json` for IDE integration.\n- The [core](./core/CMakeLists.txt) project is an example library\n- The [app](./app/CMakeLists.txt) project is an example binary application (links against the `core` lib)\n\n## Usage\n\n1. The [ProjectOptions.cmake](./ProjectOptions.cmake) file contains the CMake `option()` calls for the project.\n    - option(myproject_ENABLE_IPO)\n    - option(myproject_WARNINGS_AS_ERRORS)\n    - option(myproject_ENABLE_USER_LINKER)\n    - option(myproject_ENABLE_SANITIZER_ADDRESS)\n    - option(myproject_ENABLE_SANITIZER_LEAK)\n    - option(myproject_ENABLE_SANITIZER_UNDEFINED)\n    - option(myproject_ENABLE_SANITIZER_THREAD)\n    - option(myproject_ENABLE_SANITIZER_MEMORY)\n    - option(myproject_ENABLE_UNITY_BUILD)\n    - option(myproject_ENABLE_CLANG_TIDY)\n    - option(myproject_ENABLE_CPPCHECK)\n    - option(myproject_ENABLE_PCH)\n    - option(myproject_ENABLE_CACHE)\n\n2. The [Dependencies.cmake](./Dependencies.cmake) file provides CPM for package management.\n\n\n### Use the Github template\n\nFirst, click the `Use this template` button at the top of this page.\n\n### Additional Details\n\n1. Read [this](./docs/make_it_your_own.md) for variables/folder names you will need to change to conform the template to your project.\n2. Read [this](./docs/dependencies.md) for host platform dependencies\n3. Read [this](./docs/building.md) for building instructions\n\n## License\n\nMIT © Matt Williams\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthebashpotato%2Fcpp-mono-repo-cmake-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthebashpotato%2Fcpp-mono-repo-cmake-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthebashpotato%2Fcpp-mono-repo-cmake-template/lists"}