#build #build-tool #parallel #compile #make

build 糕点

一个语法清晰的精美构建工具

1个不稳定版本

使用旧的Rust 2015

0.1.0 2016年9月13日

#22 in #make

MIT许可证

8KB
150

🍰 糕点

糕点是一个简单、Rust风格的构建工具,通过Rust的高级宏系统进行配置,使其非常灵活且表达性强。

特性 & 优点

  1. 一个理智且清晰的语法。
  2. 通过工作窃取实现快速并行构建。
  3. 即时编译。
  4. 高效的依赖解析。

示例

#[macro_use]
extern crate cake;

build! {
    start(sodium, libstd) => cmd!("ls"; in "src"),
    sodium(libstd, libextra) => println!("yay"),
    libstd() => println!("libstd"),
    libextra(run) => cmd!("ls"; where LAL = "2"),
    run() => println!("check"),
}

语法

构建是通过build!宏声明的,当调用时,会展开到主函数。该build!宏接受一个块,包含类似于match的语法

recipe(dependencies...) => instructions

第一个表示构建菜谱的名称。由()分隔并由逗号分隔的dependencies表示此菜谱依赖于哪些构建菜谱,即需要构建的内容。

菜谱可以通过返回Err(())来失败,例如在结果上使用try!()

有关额外的辅助宏,请参阅渲染后的文档。

依赖关系

~1.5MB
~26K SLoC