r/cprogramming • u/Mainak1224x • 3h ago
Update on Flint(v0.4.0): Bare-bones, git-native build system & package manager for C/C++ (Now with tag & commit pinning)
Hey folks, quick update on Flint—a lightweight, manifest-first build system and package manager for C/C++ projects I’ve been experimenting with.
For those who missed the initial post, Flint aims to strip away build-script complexity and make C/C++ dependency management feel straightforward.
Core features:
* Git-Native: Fetch dependencies directly into your workspace via flint add <url> and flint sync.
* Single composition.json Config: Handles project layout, header paths, and underlying compiler calls (GCC/Clang). For standard setups, Flint manages this file automatically so you don't have to tweak it manually.
* Chert Compositions: Lightweight specs that make unmanifested, third-party C/C++ repos compatible out of the box.
What’s new in this update:
* Version & Commit Pinning: You can now pin dependencies to specific releases or exact commits. flint add now supports target selection via Git tag names or full commit hashes, making your project builds reproducible across machines.
Current caveats:
* Still forces a fixed project directory structure (src/, include/, deps/).
* Currently Linux-only.
It’s still an early prototype, but actively evolving. I'd love to hear your thoughts on the new versioning flow, suggestions for improvement, or feature requests!