{"id":17769434,"url":"https://github.com/feglawy/cpp_template","last_synced_at":"2026-02-04T10:04:54.259Z","repository":{"id":259547097,"uuid":"870890906","full_name":"Feglawy/cpp_template","owner":"Feglawy","description":"C++ project template with CMake and GoogleTest integration for building and testing libraries, ensuring code quality and maintainability.","archived":false,"fork":false,"pushed_at":"2024-12-01T15:10:06.000Z","size":44,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T03:51:16.818Z","etag":null,"topics":["cmake","cpp","cpp17","gtest","template","template-project"],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Feglawy.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":"2024-10-10T21:19:14.000Z","updated_at":"2024-12-01T15:10:10.000Z","dependencies_parsed_at":"2024-10-26T12:10:56.414Z","dependency_job_id":"e99be7c8-5b3d-4f11-98cd-af0a3f3c98f3","html_url":"https://github.com/Feglawy/cpp_template","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"df760b286bacf6e90b1d4b6c5946b4eef597b0e5"},"previous_names":["feglawy/cpp_template"],"tags_count":3,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Feglawy%2Fcpp_template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Feglawy%2Fcpp_template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Feglawy%2Fcpp_template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Feglawy%2Fcpp_template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Feglawy","download_url":"https://codeload.github.com/Feglawy/cpp_template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253829829,"owners_count":21970988,"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","cpp","cpp17","gtest","template","template-project"],"created_at":"2024-10-26T21:11:16.131Z","updated_at":"2026-02-04T10:04:49.209Z","avatar_url":"https://github.com/Feglawy.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ Project Template\n\nThis project template is designed to help you set up a C++ 17 project using CMake. The template is minimal yet flexible, allowing you to add libraries and expand your project as needed.\n\n## Project Structure\n\nThe structure of the project is as follows:\n\n```structure\n📁Project\n└── 📁build                     # Build directory created after running CMake (contains generated build files)\n└── 📁cmake                     # Directory for CMake scripts\n    └── Conan.cmake             # Script for managing external dependencies using Conan package manager\n    └── config.cmake            # CMake configuration settings (e.g., compiler flags, environment variables)\n    └── FetchGoogleTest.cmake   # CMake script to fetch GoogleTest dependency\n    └── Libraries.cmake         # CMake script for handling libraries configurations\n└── 📁data                      # Directory for storing data files and other resources\n└── 📁docs                      # Documentation files for the project\n└── 📁include                   # Directory for header files\n    └── 📁library               # Optional subdirectory for library header files\n    └── conf.hpp                # Example header file, potentially for project-wide configurations\n└── 📁src                       # Directory for source code files\n    └── 📁library               # Optional subdirectory for library source files\n    └── CMakeLists.txt          # CMake configuration for building the source code files\n    └── main.cpp                # Main program file where the entry point (main function) resides\n└── 📁tests                     # Directory for test files\n    └── CMakeLists.txt          # CMake configuration for compiling and running tests\n    └── test_main.cc            # Main test file for the project, typically where tests are executed\n└── CMAKELISTS.txt              # Top-level CMake build configuration file for the project\n```\n\n### Key Folders\n\n- `include/`: Contains all your header files (.hpp). You can organize headers for different libraries into subdirectories within include/library/ if necessary.\n\n- `src/`: Contains all your source files (.cpp). You can organize source files for different libraries into subdirectories within src/library/\n- `cmake/`: This directory can store additional CMake configuration files.\n- `tests/`: (Optional) Contains all test files.\n- `data/` : Store resources and data files in this direcotry.\n\n## How to Configure and Build the Project\n\nSee **[Building and Running the project](./docs/Building_and_Running_the_Project.md)**\n\n\u003e [!NOTE]\n\u003e You can use cmake extension in vscode for building and running the project it gets the job done.\n\n## To customize the CMake Configurations\n\nSee **[Configure CMake for your project](./docs/CMake_Configuration.md)**\n\n### Handling your libraries\n\nSee **[adding libraries](./docs/CMake_Configuration.md#add-more-libraries)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeglawy%2Fcpp_template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeglawy%2Fcpp_template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeglawy%2Fcpp_template/lists"}