Original Summary

I've been working on Flint, an open-source build system + package manager for C/C++, and v0.5.5 removes one of the things that has always bothered me about configuring C/C++ projects: having to tell the build system where every source/header directory lives. Before Flint: ``text src/ include/ static/ shared/ deps/ ... ` Then your build configuration needs to keep track of which directories contain sources, which are headers, which libraries to link, which files to exclude, etc. With v0.5.5, Flint can **discover project resources automatically**. You can organize your project normally, and Flint figures out the files that need to be involved in the build. ### What's new in v0.5.5 **Automatic resource discovery** You no longer need to manually configure: * src * include_paths * static * shared Flint discovers the relevant resources in the project automatically. **Smarter exclusions** You can now control discovery with: `text - excludes - exclude_dirs - exclude_exception ` This makes it possible to ignore things like platform-specific implementations, experimental code, generated files, or legacy directories without writing custom build logic. **Native .h.in templates** Flint can now generate headers from .h.in templates with variable substitution. For example, this makes generated version headers possible without requiring an external configuration tool. **Standardized project macros** Project-generated macros have been standardized around: `c PROJECT_VERSION ` to reduce the possibility of collisions with third-party libraries. **More CLI functionality** v0.5.5 also adds: `bash flint help flint version flint deps flint cache ` for CLI help, version information, and dependency/build-cache management. ### The resulting project configuration A small C project can now look roughly like this: `json { "project_name": "example_project", "project_language": "c", "version": "0.1.0", "compiler_path": "/usr/bin/gcc", "executable": true, "flags": ["-Wall", "-O2"], "dependencies": { "example_lib": { "version": "1.0.0", "remote": " https://github.com/user/example\_lib.git " } } } ` Then: `bash flint build `` handles source/header discovery, dependency handling, linking, and compilation. The broader idea behind Flint is pretty simple: I want C/C++ project configuration to describe what a project is, rather than manually describing how every file should be built. I'm still actively working on it, so I'm particularly interested in feedback from people who maintain C/C++ projects. What part of your current C/C++ build setup do you find the most annoying? And if you want to take a look at the implementation: GitHub: https://github.com/mainak55512/flint If you find the approach useful, a GitHub star is appreciated —

中文概览

中文标题: Flint v0.5.5 — C/C++ 项目不再需要手动维护源文件/头文件列表

Flint 是面向 C/C++ 的开源构建系统和包管理器。v0.5.5 不再需要手动配置源码与头文件目录,可自动发现项目资源;新增 excludes、exclude_dirs、exclude_exception 排除控制,支持 .h.in 模板生成头文件,标准化 PROJECT_VERSION 宏,并增加 help、version、deps、cache 等 CLI 功能。项目配置后运行 flint build 即可处理发现、依赖、链接和编译。作者寻求 C/C++ 项目维护者反馈。


  • 情报分类:开源项目与落地
  • 分类依据:开源C/C++构建系统新版本发布与功能说明
  • 信息来源:Reddit · SideProject
  • 发布时间:2026/9/29 22:16:03