{"id":17320938,"url":"https://github.com/thilinarmtb/ttt","last_synced_at":"2025-06-13T04:32:47.170Z","repository":{"id":169910716,"uuid":"646000520","full_name":"thilinarmtb/ttt","owner":"thilinarmtb","description":"Template for a CMake based C project (a library and a binary which calls it).","archived":false,"fork":false,"pushed_at":"2024-12-23T21:35:42.000Z","size":3245,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-21T16:50:14.795Z","etag":null,"topics":["c","clang-format","clang-tidy","cmake","conda","doxygen","sphinx","template"],"latest_commit_sha":null,"homepage":"https://thilinarmtb.github.io/ttt","language":"C","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/thilinarmtb.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":"2023-05-27T01:24:33.000Z","updated_at":"2024-12-23T21:34:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"d8563d82-86f2-49bf-8b73-f8677ad5acfc","html_url":"https://github.com/thilinarmtb/ttt","commit_stats":{"total_commits":64,"total_committers":1,"mean_commits":64.0,"dds":0.0,"last_synced_commit":"afbcad1dc3df6b5287491d0b29ed369d30ddbcbd"},"previous_names":["thilinarmtb/proj-x","thilinarmtb/xxx"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/thilinarmtb/ttt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilinarmtb%2Fttt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilinarmtb%2Fttt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilinarmtb%2Fttt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilinarmtb%2Fttt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thilinarmtb","download_url":"https://codeload.github.com/thilinarmtb/ttt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilinarmtb%2Fttt/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259580960,"owners_count":22879758,"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","clang-format","clang-tidy","cmake","conda","doxygen","sphinx","template"],"created_at":"2024-10-15T13:34:23.987Z","updated_at":"2025-06-13T04:32:47.152Z","avatar_url":"https://github.com/thilinarmtb.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TTT\n\n`TTT` is a template for a CMake based C project to help easily bootstrap C\nprojects. This started as an effort to put all boilerplate code that I ended\nup writing whenever I created a new project.\n\n## Setup a new project\n\nSimply use `setup.sh` to replace instances of `ttt` and `TTT` with your\nproject specific names and/or prefixes. This script also renames the files.\n```sh\n./setup.sh -rename mylib\n```\n\nThen `mylib` (Initially `ttt` before calling setup), can be used to\nbuild and install the library `mylib.so` and the tests.\n\nIf the option `-n` or `-nuke` is also passed to the script, `setup.sh`\nself-deletes itself, deletes git history and this `README.md` as well.\n```sh\n./setup.sh -rename mylib -nuke\n```\n\nUse `-h` or `-help` to print the full help message.\n```sh\n./setup.sh -help\n```\n\n## Build this project\n\nThis project uses conda to manage dependencies (CMake, clang-format, clang-tidy\nand other dependencies for documentation). Dependencies can be installed by\nexecuting following commands after installing\n[conda](https://docs.conda.io/en/latest/miniconda.html).\n```sh\nconda env create -f environment-dev.yml\nconda activate mylib-dev\n```\n\nYou can format the source code with `clang-format` (`.c` and `.h` files are\nlikely to be messy after renaming from `ttt` to `mylib`) using the option\n`-format`.\n```\n./mylibcfg\n./mylib -format\n```\n\nThen you can initialize git, add the files and do the initial commit for the\nnew project.\n```sh\ngit init\ngit add .\ngit commit\n```\n\nSimply run `mylibcfg` to configure and `mylib` script to build and install the\nlibrary.\n```sh\n./mylibcfg -enable-docs\n./mylib -docs -install\n```\n\nUse `-help` to see all the options supported by `mylibcfg` and `mylib` script.\n```\n./mylibcfg -help\n./mylib -help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthilinarmtb%2Fttt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthilinarmtb%2Fttt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthilinarmtb%2Fttt/lists"}