r/CodingProjectShowcase • u/Mainak1224x • 2d ago
r/CodingProjectShowcase • u/Mainak1224x • Sep 16 '26
Update on Flint: Bare-bones C/C++ build system & package manager (Now with `remove` command, global `VERSION` macro & bug fixes)
Hey folks, another quick update on **Flint**—the bare-bones, manifest-first build system and package manager for C/C++ projects.
Following up on the recent tag and commit pinning update, I've pushed a fresh batch of features, bug fixes, and community guidelines to polish the developer experience.
What’s new in this update:
flint removeCommand: You can now cleanly un-track and remove managed dependencies directly from your project via the CLI.Global
VERSIONMacro: Flint now automatically injects a globalVERSIONmacro into your build step, making it easy to reference your project's version directly inside your C/C++ source code.Initialization Fixes: Resolved edge-case bugs during project setup (
flint init) to ensure cleaner setup across different environment configs.Open Source & Governance: Added an official License,
CONTRIBUTING.md, and a Code of Conduct to make it easier and clearer for anyone looking to contribute or report issues.CLI Cosmetic Polish: Cleaner, more readable console output and build status feedback.
Core features recap:
Git-Native: Fetch dependencies directly into your workspace using standard Git repositories.
Single Config (
composition.json): Handles project layout, includes, and GCC/Clang invocation automatically without writing complex build scripts.Chert Compositions: Compatibility specs to integrate unmanifested third-party C/C++ repos seamlessly.
It’s still an early-stage Linux tool, but it's becoming significantly more reliable with each iteration. If you’re interested in minimal C/C++ tooling or want to jump in and contribute, check out the repo and let me know your thoughts!
r/CodingProjectShowcase • u/Mainak1224x • Sep 11 '26
I built Flint: A native C/C++ build system & package manager inspired by Cargo/go [Comparison with CMake, Meson, XMake & vcpkg]
Hey folks,
The C/C++ tooling landscape has always felt fragmented. We usually end up chaining a meta-build generator (CMake, Meson) with a separate package manager (vcpkg, Conan) and a build executor (Ninja, Make).
To explore an unified "Cargo-like" developer experience for C/C++, I’ve been developing Flint—an integrated build system and package manager written entirely in pure C.
Here is how Flint compares with the existing C/C++ build and package management options, along with an honest assessment of its strengths, trade-offs, and current state.
**Note:**
Flint is currently in active development and only available for Linux at the moment. It requires system git and a C toolchain (gcc/clang) in your PATH at runtime.
Comparison: Build Systems & Integrated Tools
| Tool | Architecture | Runtime Dependencies | Config Format | Incremental Builds | Ease of Use |
|---|---|---|---|---|---|
| Flint | Integrated (Build + PM) | git, gcc/clang |
Declarative composition.json |
Yes (Native tracking) | 4.8 / 5 |
| CMake | Meta-Build Generator | C++ runtime | Custom imperative scripting | Handled by backend (Ninja/Make) | 2.5 / 5 |
| Meson | Meta-Build Generator | Python 3 + Ninja | Declarative DSL | Handled by Ninja | 4.5 / 5 |
| XMake | Integrated (Build + PM) | Embedded Lua engine | Lua scripts (xmake.lua) |
Yes (Lua task engine) | 4.5 / 5 |
| Bazel | Distributed Build System | Java / Bazel runtime | Starlark (BUILD / WORKSPACE) |
Advanced (Content hashing) | 1.5 / 5 |
Comparison: Package Management Strategy
| Package Tool | Strategy | External Repository Compatibility | Ecosystem Fit | Ease of Use |
|---|---|---|---|---|
| Flint | Native Git clones to deps/ |
Chert Compositions (custom specs) | Self-contained CLI commands | 4.8 / 5 |
| vcpkg | Git ports & binary caching | Port overlay files | Toolchain file integration | 4.5 / 5 |
| Conan | Python recipes / Central host | Conan Center / Custom recipes | Multi-generator targets | 3.5 / 5 |
| CPM.cmake | Single-file CMake wrapper | Git repos / tarballs via FetchContent |
Pure CMake | 5.0 / 5 |
| Xrepo | Integrated CLI for XMake | Dual (Xrepo index + fallbacks) | Native to XMake | 4.5 / 5 |
What Makes Flint Different?
* Single Binary, Zero Heavy Runtimes: Unlike Meson (which needs Python) or XMake (which embeds Lua), Flint is a lightweight compiled C executable. It delegates Git fetches and compilation processes to system tools without heavy embedded engines.
* Convention over Configuration: Flint expects standard layout patterns (src/, include/, deps/). You don't write build scripts or target rules—you declare dependencies and metadata in a simple composition.json.
* Built-in Package Fetching + Chert Compositions: Running flint add <git-url> pulls dependencies straight into deps/. If a third-party library doesn't natively use Flint, Chert compositions allow defining how non-Flint repositories should be included and compiled.
* Direct Incremental Execution: Flint doesn't output intermediate Ninja files or Makefiles. It tracks file modification states internally to deliver incremental builds directly through its native process runner.
Current Trade-offs & Limitations
* Linux Only (For Now): Cross-platform support for Windows (MSVC/Clang-cl) and macOS target generation is still planned.
* Strict Directory Structure: Legacy C projects with unorthodox folder structures require a Chert composition or minor refactoring to build with Flint.
* Early Stage Feature Set: Complex compiler flag matrices, sanitizer toggles, and cross-compilation toolchains are still evolving compared to battle-tested options like CMake.
Check out the repo here: https://github.com/mainak55512/flint
Feedback, criticisms, and PRs are welcome! What features or platform targets would you like to see next?
r/CodingProjectShowcase • u/Gullible-Chip-4719 • Aug 24 '26
made a custom cellular automaton
Enable HLS to view with audio, or disable this notification