{"id":22005489,"url":"https://github.com/systemsoftware/cppc","last_synced_at":"2025-10-10T14:11:11.463Z","repository":{"id":257699211,"uuid":"859069182","full_name":"systemsoftware/cppc","owner":"systemsoftware","description":"Compile an entire directory with one command","archived":false,"fork":false,"pushed_at":"2024-09-18T03:03:34.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T09:45:36.532Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/systemsoftware.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-09-18T03:02:53.000Z","updated_at":"2024-09-18T03:03:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"23d7cfdc-5f2c-4b4c-9e74-84b8c473e1bc","html_url":"https://github.com/systemsoftware/cppc","commit_stats":null,"previous_names":["systemsoftware/cppc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/systemsoftware/cppc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemsoftware%2Fcppc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemsoftware%2Fcppc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemsoftware%2Fcppc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemsoftware%2Fcppc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/systemsoftware","download_url":"https://codeload.github.com/systemsoftware/cppc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemsoftware%2Fcppc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004181,"owners_count":26083688,"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-10-10T02:00:06.843Z","response_time":62,"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":[],"created_at":"2024-11-30T00:20:00.534Z","updated_at":"2025-10-10T14:11:11.435Z","avatar_url":"https://github.com/systemsoftware.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cppc\n\nThis is a utility for compiling C++ files in a directory. It provides various options for customizing the compilation process, including specifying the C++ version, choosing the compiler, and handling output files.\n\n## Features\n\n- Compiles all C++ files (`.cpp` and `.h`) in the current directory\n- Option to compile all files in the directory, regardless of extension\n- Customizable C++ version\n- Ability to specify a different compiler\n- Option to delete object files and executables after compilation\n\n## Installation\n\nTo build and install the `cppc` tool, follow these steps:\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/systemsoftware/cppc.git\n   ```\n\n2. Change into the project directory:\n\n   ```bash\n   cd cppc\n   ```\n\n3. Compile the project with Clang++:\n\n   ```bash\n   clang++ -std=c++17 -stdlib=libc++ main.cpp -o ~/cppc\n   ```\n\n4. (Optional) Create a symbolic link to make `cppc` accessible from anywhere:\n\n   ```bash\n   sudo ln -s ~/cppc /usr/local/bin/cppc\n   ```\n\n   This step allows you to run `cppc` from the command line without specifying the full path.\n\n**Note:** Make sure you have `clang++` and the necessary libraries installed on your system. The symbolic link step requires `sudo` privileges.\n\n## Usage\n\nTo use this utility, compile the program and run it from the command line. The basic usage is as follows:\n\n```\ncppc [options]\n```\n\n### Options\n\n- `-v \u003cversion\u003e`: Specify the C++ version to use (default is 17)\n- `-c \u003ccompiler\u003e`: Specify the compiler to use (default is clang++)\n- `-d`: Delete object files and executables after compilation\n- `-a`: Compile all files in the directory (ignoring .DS_Store, .o, and .out files)\n\n## Examples\n\n1. Compile using default settings:\n   ```\n   cppc\n   ```\n\n2. Use C++20 and g++ compiler:\n   ```\n   cppc -v 20 -c g++\n   ```\n\n3. Compile all files and delete outputs:\n   ```\n   cppc -a -d\n   ```\n\n## Requirements\n\n- C++17 or later and Filesystem library support\n- A C++ compiler (default is clang++)\n\n## Notes\n\n- It skips directories, .DS_Store files, and existing .o and .out files when scanning with the `-a` option.\n- Error messages are printed to stderr in case of compilation failures or missing files.\n\n## Limitations\n\n- The program does not handle complex project structures or dependencies and is intended for simple, single-directory projects.\n- Custom output names are not supported.\n\n## Contributing\n\nFeel free to fork this project and submit pull requests for any enhancements or bug fixes.\n\n## License\n\nMIT License. See LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemsoftware%2Fcppc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystemsoftware%2Fcppc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemsoftware%2Fcppc/lists"}