{"id":19819696,"url":"https://github.com/gvatsal60/CMakeDockerTemplate","last_synced_at":"2025-05-01T11:33:11.164Z","repository":{"id":212939625,"uuid":"732656939","full_name":"gvatsal60/CMakeTemplateDocker","owner":"gvatsal60","description":"🐳📦 Streamlined C++ Template Development with CMake and Docker","archived":false,"fork":false,"pushed_at":"2024-10-21T15:32:36.000Z","size":28,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-22T02:33:12.719Z","etag":null,"topics":["c","cmake","cpp","docker","docker-container","docker-image","dockerfile","make","makefile"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gvatsal60.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"buy_me_a_coffee":"gvatsal60"}},"created_at":"2023-12-17T12:21:16.000Z","updated_at":"2024-08-27T04:35:49.000Z","dependencies_parsed_at":"2024-02-15T05:21:17.134Z","dependency_job_id":"1e4bb597-ff23-46e9-8eee-510c459e5c3e","html_url":"https://github.com/gvatsal60/CMakeTemplateDocker","commit_stats":null,"previous_names":["gvatsal60/cpptemplate","gvatsal60/cmaketemplatedocker"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gvatsal60%2FCMakeTemplateDocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gvatsal60%2FCMakeTemplateDocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gvatsal60%2FCMakeTemplateDocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gvatsal60%2FCMakeTemplateDocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gvatsal60","download_url":"https://codeload.github.com/gvatsal60/CMakeTemplateDocker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224254064,"owners_count":17281084,"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":["c","cmake","cpp","docker","docker-container","docker-image","dockerfile","make","makefile"],"created_at":"2024-11-12T10:19:44.182Z","updated_at":"2025-05-01T11:33:11.144Z","avatar_url":"https://github.com/gvatsal60.png","language":"Makefile","funding_links":["https://buymeacoffee.com/gvatsal60"],"categories":[],"sub_categories":[],"readme":"# CMakeDockerTemplate\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://img.shields.io/github/license/gvatsal60/CMakeDockerTemplate)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/gvatsal60/CMakeDockerTemplate/c-cpp.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=gvatsal60_CMakeDockerTemplate\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=gvatsal60_CMakeDockerTemplate)\n![GitHub pull-requests](https://img.shields.io/github/issues-pr/gvatsal60/CMakeDockerTemplate)\n![GitHub Issues](https://img.shields.io/github/issues/gvatsal60/CMakeDockerTemplate)\n![GitHub forks](https://img.shields.io/github/forks/gvatsal60/CMakeDockerTemplate)\n![GitHub stars](https://img.shields.io/github/stars/gvatsal60/CMakeDockerTemplate)\n\n## Overview\n\nWelcome to CMakeDockerTemplate! This repository provides a template for setting up a C++ project using CMake within a Docker container.\nThis template aims to streamline the process of setting up a development environment for C++ projects, ensuring consistency and ease of use across different platforms.\n\n## Prerequisites\n\nBefore getting started, ensure that you have the following prerequisites installed on your system:\n\n- Docker: Install Docker according to the instructions for your operating system from [Docker's official website](https://www.docker.com/get-started).\n- Git: Install Git if you haven't already from [Git's official website](https://git-scm.com/downloads).\n- Make:\n\n  - **Linux:** If you're on a Linux system, Make might already be installed. If not, you can install it using your package manager. For example, on Ubuntu, you can install Make with the following command:\n\n    ```sh\n    sudo apt-get install make\n    ```\n\n  - **Windows:** For Windows users, Make is not typically installed by default. You can install it using MinGW, which provides a Unix-like environment on Windows along with a collection of GNU utilities.\n    Follow these steps to install Make on Windows using MinGW:\n    1. Download and install MinGW from [MinGW's official website](http://www.mingw.org/).\n    2. During installation, make sure to select the option to install the \"MSYS Basic System\" component, which includes Make.\n    3. After installation, add the MinGW bin directory to your system's PATH environment variable. This is typically `C:\\MinGW\\bin`.\n\n## Getting Started\n\nFollow these steps to get started with CMakeDockerTemplate:\n\n1. **Clone the Repository:**\n\n   ```sh\n   git clone https://github.com/yourusername/CMakeDockerTemplate.git\n   cd CMakeDockerTemplate\n   ```\n\n2. **Build the Docker Image:**\n\n   ```sh\n   make build-image\n   ```\n\n3. **Inside the Docker Container:**\n   Once inside the Docker container, you'll find yourself in the `$PROJECT_NAME` directory, where the CMake project is set up.\n\n4. **Build the Project:**\n\n   ```sh\n   make docker-build\n   ```\n\n5. **Run the Executable:**\n\n   ```sh\n   make docker-run\n   ```\n\n6. **Test the Project:**\n\n   ```sh\n   make docker-test\n   ```\n\n7. **Clean the Project:**\n\n   ```sh\n   make docker-clean\n   ```\n\n## Customization\n\nYou can customize this template according to your project's needs. Here are some areas you might want to modify:\n\n- **CMakeLists.txt:** Adjust CMake configuration, add or remove source files, libraries, or dependencies as needed.\n- **Dockerfile:** Modify Dockerfile to include additional packages or tools required for your project.\n- **Source Files:** Add your source files under the `src` directory.\n\n## Contributing\n\nContributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.\n\n## License\n\nThis project is licensed under the Apache 2.0 License. See the [LICENSE](https://www.apache.org/licenses/LICENSE-2.0) file for details.\n\n## Acknowledgments\n\n- This template is inspired by best practices in C++ project development.\n- Special thanks to the CMake and Docker communities for their excellent tools and documentation.\n\n## Contact\n\nFor any inquiries or support, feel free to contact over [Telegram ➤](https://t.me/gvatsal60) or open an issue in the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgvatsal60%2FCMakeDockerTemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgvatsal60%2FCMakeDockerTemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgvatsal60%2FCMakeDockerTemplate/lists"}