#build #build-tool #configuration #automation #toml-config #configure #projects

build simplebuild

针对 C 项目的简单构建自动化工具

3 个版本

0.1.2 2024 年 3 月 22 日
0.1.1 2024 年 3 月 22 日
0.1.0 2024 年 3 月 22 日

#73 in 构建实用工具

每月 22 次下载

MIT 许可证

12KB
162

███████╗██╗███╗   ███╗██████╗ ██╗     ███████╗    ██████╗ ██╗   ██╗██╗██╗     ██████╗ 
██╔════╝██║████╗ ████║██╔══██╗██║     ██╔════╝    ██╔══██╗██║   ██║██║██║     ██╔══██╗
███████╗██║██╔████╔██║██████╔╝██║     █████╗      ██████╔╝██║   ██║██║██║     ██║  ██║
╚════██║██║██║╚██╔╝██║██╔═══╝ ██║     ██╔══╝      ██╔══██╗██║   ██║██║██║     ██║  ██║
███████║██║██║ ╚═╝ ██║██║     ███████╗███████╗    ██████╔╝╚██████╔╝██║███████╗██████╔╝
╚══════╝╚═╝╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝    ╚═════╝  ╚═════╝ ╚═╝╚══════╝╚═════╝ 
--------------------------------------------------------------------------------------
A Simpler yet powerful Build Automation Tool for c (because `make` is hard 😭). Made with ❤️ using 🦀

Crates.io License: MIT

SimpleBuild 是一个专为 C 项目设计的轻量级构建自动化工具。它允许您通过简单的 TOML 配置文件轻松配置您的构建设置和目标。

高效编译和链接(就像 make 一样 😉)

SimpleBuild 通过仅重新编译上次构建后发生更改的文件来优化构建时间。如果需要,它也仅重新链接目标二进制文件,最小化不必要的编译和链接步骤。

🚀 安装

要使用 SimpleBuild,只需从 GitHub 的发行页面下载您平台的二进制可执行文件。将可执行文件放置在您想要的目录中,并确保将其包含在系统 PATH 环境变量中。

🧑‍💻 使用

1. 创建配置文件

在项目的根目录中创建一个 simplebuild.toml 文件。该文件将包含您的构建设置和目标配置。

示例 simplebuild.toml

[compiler]
name = "gcc"
flags = ["-Wall", "-Wextra", "-Werror"]
includes = ["./external/include/"]
libraries = ["./external/lib/"]
staticlibs = ["m"] # Linked to all targets
dynlibs = ["SDL2"] # Linked to all targets

[build]
dir = "./build"

[[targets]]
name = "main"
source = "main.c"
dependencies = ["utils.c", "helper.c"]
staticlibs = ["pthread"] # Linked only to this target

[[targets]]
name = "test"
source = "test.c"
dependencies = ["utils.c"]
dynlibs = ["curl"] # Linked only to this target

2. 运行 SimpleBuild

simplebuild.toml 文件所在的目录中运行 SimpleBuild 可执行文件

simplebuild main

SimpleBuild 将从 simplebuild.toml 中读取配置,并根据指定的设置和目标执行构建过程。

📄 配置

simplebuild.toml 文件允许您定义各种构建设置和目标配置

  • [compiler]:指定编译器设置,如名称、标志、包含目录、库目录、静态库和动态库。
  • [build]:定义存储目标文件和二进制文件的构建目录。
  • [[targets]]:指定单个构建目标,包括其源文件、依赖项以及任何需要链接的附加库。

🌟 与我们联系

M. Zahash – [email protected]

在MIT许可下分发。有关更多信息,请参阅LICENSE

https://github.com/zahash/

🤝 贡献给SimpleBuild!

  1. 分叉它(https://github.com/zahash/simplebuild/fork
  2. 创建您的功能分支(git checkout -b feature/fooBar
  3. 提交您的更改(git commit -am 'Add some fooBar'
  4. 推送到分支(git push origin feature/fooBar
  5. 创建新的Pull Request

❤️ 表达一些喜爱!

如果您觉得SimpleBuild有帮助,请在GitHub上给它一个star!您的支持鼓励了持续改进和开发。

依赖项

~1.6–2.3MB
~45K SLoC