{"id":28506643,"url":"https://github.com/infinsys/xplatform-cpp","last_synced_at":"2026-04-09T07:01:54.946Z","repository":{"id":297865876,"uuid":"997996083","full_name":"InfinSys/xplatform-cpp","owner":"InfinSys","description":"Cross-platform C++ project template for Windows, macOS, and Linux development.","archived":false,"fork":false,"pushed_at":"2025-06-24T09:23:45.000Z","size":143,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"api-style","last_synced_at":"2025-06-24T10:35:45.013Z","etag":null,"topics":["benchmarking","c","cmake","cpp","cross-platform","linux","macos","open-source","project","template","unit-testing","windows"],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InfinSys.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-06-07T16:38:48.000Z","updated_at":"2025-06-24T09:23:48.000Z","dependencies_parsed_at":"2025-06-24T10:39:42.259Z","dependency_job_id":null,"html_url":"https://github.com/InfinSys/xplatform-cpp","commit_stats":null,"previous_names":["infinsys/xplatform-cpp"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/InfinSys/xplatform-cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfinSys%2Fxplatform-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfinSys%2Fxplatform-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfinSys%2Fxplatform-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfinSys%2Fxplatform-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InfinSys","download_url":"https://codeload.github.com/InfinSys/xplatform-cpp/tar.gz/refs/heads/api-style","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfinSys%2Fxplatform-cpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271836315,"owners_count":24831197,"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","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["benchmarking","c","cmake","cpp","cross-platform","linux","macos","open-source","project","template","unit-testing","windows"],"created_at":"2025-06-08T20:06:07.124Z","updated_at":"2026-04-09T07:01:54.938Z","avatar_url":"https://github.com/InfinSys.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003c!--\n    (June 2025 - Jamon T. Bailey)\n\nThis is not an HTML document, obviously.\n--\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eCross-Platform C/C++ Template\u003c/h1\u003e\n\u003c/div\u003e\u003c/br\u003e\n\n\u003cdiv\u003e \u003c!--| Template Style Introduction |--\u003e\n    \u003ch3\u003e:: API Style\u003c/h3\u003e\n    \u003cp\u003e\n        The \u003cstrong\u003eAPI style\u003c/strong\u003e project directory is designed for \u003cstrong\u003ewriting libraries intended to be consumed by other developers\u003c/strong\u003e. Unlike end-user applications, a library's project structure is part of its public interface and consequently the user experience. Downstream projects interact not only with its binaries and headers but also with its build system and dependency layout. The goal this template has in mind is providing new projects with a conforming starting point that is easy to consume, extend, and maintain; whether linking it via CMake, embedding it directly, or publishing it as a package.\n    \u003c/p\u003e\n    \u003cp\u003e\n        In contrast, \u003cstrong\u003eEnd-User style\u003c/strong\u003e projects typically focus on producing standalone executables or tools where internal organization is flexible and developer-facing ergonomics are less critical. You can find this template on the \u003ca href=\"https://github.com/InfinSys/xplatform-cpp/tree/end-user-style\"\u003eEnd-User Style branch\u003c/a\u003e.\n    \u003c/p\u003e\n\u003c/div\u003e\u003c/br\u003e\n\n\u003cdiv\u003e\n    \u003ch2\u003eLicense\u003c/h2\u003e\n    \u003ch3\u003eThere are no legal restrictions imposed on the use of this repository by the author. You may use the materials without attribution.\u003c/h3\u003e\n    \u003cp\u003e\n        This is an explicit written notice from the author of this repository to all recipients of its contents\n: This template is free to use for any purpose with no restrictions. An MIT license is attached to this repository as indication of this fact and as standard procedure. \u003cstrong\u003eThe author does not require you to retain a license or copyright notice for this template in your derivative work\u003c/strong\u003e. This template is \u003cstrong\u003efree software\u003c/strong\u003e.\n    \u003c/p\u003e\n\u003c/div\u003e\u003c/br\u003e\n\n\u003cdiv\u003e \u003c!--| Template Setup Instructions |--\u003e\n    \u003ch2\u003eProject Template Setup\u003c/h2\u003e\n    \u003ch4\u003eClone this repository using the CLI:\u003c/h4\u003e\n    \u003cpre align=\"center\"\u003e\u003ccode\u003egit clone https://github.com/InfinSys/xplatform-cpp.git -b api-style [destination path]\u003c/code\u003e\u003c/pre\u003e\n    \u003cstrong\u003e\u003ch3 align=\"center\"\u003eOR\u003c/h3\u003e\u003c/strong\u003e\n    \u003ch4 align=\"center\"\u003e\n        \u003ca href=\"https://github.com/InfinSys/xplatform-cpp/archive/refs/heads/api-style.zip\"\u003e📂download the source ZIP file\u003c/a\u003e and extract it to a preferred location.\n    \u003c/h4\u003e\u003c/br\u003e\n    \u003ch3\u003eNext Steps:\u003c/h3\u003e\n    \u003cp\u003e\n        Once you obtain the template you can proceed with your modifications. There are conveniently placed \u003ccode\u003eTODO:\u003c/code\u003e markers within the project files that point out some critical personalization points if you are unsure where to start.\n    \u003c/p\u003e\n    \u003ch3\u003eYou are encouraged to modify this template as much as you desire, make it yours!\u003c/h3\u003e\n    \u003cp\u003e(\u003cem\u003eMore details on project structure \u003ca href=\"#-this-readme-is-still-in-progress-\"\u003ebelow\u003c/a\u003e\u003c/em\u003e)\u003c/p\u003e\u003c/br\u003e\n    \u003cp\u003e\n        When you are ready to build the project, \u003cem\u003eor if you'd like to verify the template works straight out of the box\u003c/em\u003e, you can instruct CMake to create the necessary build system files for your generator with the following:\n    \u003c/p\u003e\n    \u003ch3\u003e🔧 Run the CMake configuration:\u003c/h3\u003e\n    \u003cp\u003e(\u003cem\u003ein the root directory of the template\u003c/em\u003e)\u003c/p\u003e\n    \u003cblockquote\u003e\n        \u003ch3\u003eWindows (x64):\u003c/h3\u003e\n        \u003cpre\u003e\u003ccode\u003ecmake --preset win32-x64-debug\u003c/code\u003e\u003c/pre\u003e\n        \u003ch3\u003eLinux (x64):\u003c/h3\u003e\n        \u003cpre\u003e\u003ccode\u003ecmake --preset linux-x64-debug\u003c/code\u003e\u003c/pre\u003e\n        \u003ch3\u003emacOS (x64):\u003c/h3\u003e\n        \u003cpre\u003e\u003ccode\u003ecmake --preset macos-x64-debug\u003c/code\u003e\u003c/pre\u003e\n    \u003c/blockquote\u003e\u003c/br\u003e\n\u003c/div\u003e\n\n\u003e [!NOTE] \u003c!--| GitHub Notice: README Overwrite |--\u003e\n\u003e \u003ch3\u003e⚠️ \u003cem\u003eHEADS-UP!\u003c/em\u003e\u003c/h3\u003e\n\u003e \u003ch4\u003eOnce you instruct CMake to configure the project \u003cem\u003ethis\u003c/em\u003e README will be overwritten by the generated version!\u003c/h4\u003e\n\u003e \u003ch4\u003e\n\u003e    You can modify the README by changing the template\n\u003e    \u003ca href=\"https://github.com/InfinSys/xplatform-cpp/blob/api-style/docs/templ/README.md.in\"\u003eREADME.md.in\u003c/a\u003e\n\u003e    file.\n\u003e \u003c/h4\u003e\n\u003e \u003cp\u003e(\u003cem\u003eMore details on template files \u003ca href=\"#-this-readme-is-still-in-progress-\"\u003ebelow\u003c/a\u003e\u003c/em\u003e)\u003c/p\u003e\n\n\u003c!--\n\u003cdiv\u003e\n    \u003c/br\u003e\u003cp\u003e\n        Configuring the project results in a \u003ccode\u003ebuild\u003c/code\u003e folder appearing in the project root that contains a subdirectory\n        specific to your preset. Because this template makes use of CMake presets, it is not necessary to navigate to the\n        build directory before invoking the CMake build command:\n    \u003c/p\u003e\n    \u003ch3\u003e🔨 Build your project with CMake:\u003c/h3\u003e\n    \u003cblockquote\u003e\n        \u003ch3\u003eWindows:\u003c/h3\u003e\n        \u003cpre\u003e\u003ccode\u003ecmake --build --preset win32-x64-debug\u003c/code\u003e\u003c/pre\u003e\n        \u003ch3\u003eLinux:\u003c/h3\u003e\n        \u003cpre\u003e\u003ccode\u003ecmake --build --preset linux-x64-debug\u003c/code\u003e\u003c/pre\u003e\n        \u003ch3\u003emacOS:\u003c/h3\u003e\n        \u003cpre\u003e\u003ccode\u003ecmake --build --preset macos-x64-debug\u003c/code\u003e\u003c/pre\u003e\n    \u003c/blockquote\u003e\n\u003c/div\u003e\u003c/br\u003e\u003c/br\u003e\n--\u003e\n\n\u003c!--\n\u003cdiv\u003e\n    \u003ch2 align=\"center\"\u003eN/a\u003c/h2\u003e\n    \u003ch3\u003e\u003cstrong\u003eCMake Build System:\u003c/strong\u003e\u003c/h3\u003e\n    \u003cdiv align=\"center\"\u003e\n        \u003cimg src=\"https://cmake.org/wp-content/uploads/2023/08/CMake-Logo.svg\" alt=\"CMake Logo\" width=200\u003e\n    \u003c/div\u003e\u003c/br\u003e\n    \u003cblockquote\u003e\n        \u003cp\u003e\n            At the core of this template is CMake, serving as the primary build tool. This provides\n            flexibility and control over your project's compilation, linking, and packaging across diverse platforms.\n            \u003cstrong\u003eMany of the template's features are powered directly by CMake's capabilities.\u003c/strong\u003e\n        \u003c/p\u003e\n        \u003cp\u003e\n            CMake offers amazing support for various compilers, build tools, and IDEs, enabling users\n            to easily swap out toolchains and target different environments without modifying source code or project files.\n            This simplifies maintaining a consistent build process across Windows, Linux, and macOS. You can find\n            the\n            \u003ca href=\"https://cmake.org/cmake/help/latest/index.html\"\u003e\n                official CMake documentation here\n            \u003c/a\u003e.\n        \u003c/p\u003e\n    \u003c/blockquote\u003e\u003c/br\u003e\n\u003c/div\u003e\n--\u003e\n\n\u003c!-- DO NOT DELETE CONTENTS BELOW --\u003e\n\u003chr\u003e\n\n\u003c/br\u003e\u003ch3 align=\"center\"\u003e( ...This README is still in progress... )\u003c/h3\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinsys%2Fxplatform-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinsys%2Fxplatform-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinsys%2Fxplatform-cpp/lists"}