#generate #proc-macro #test #dependencies #derive

构建 build-deps

Rust 构建脚本依赖项生成器,用于数据/接口定义文件

4 个版本

0.1.4 2019 年 7 月 28 日
0.1.3 2019 年 1 月 23 日
0.1.2 2019 年 1 月 22 日
0.1.1 2019 年 1 月 21 日
0.1.0 2019 年 1 月 21 日

构建工具 中排名第 270

Download history • Rust 包仓库 1923/week @ 2023-12-06 • Rust 包仓库 2188/week @ 2023-12-13 • Rust 包仓库 2407/week @ 2023-12-20 • Rust 包仓库 794/week @ 2023-12-27 • Rust 包仓库 3089/week @ 2024-01-03 • Rust 包仓库 2974/week @ 2024-01-10 • Rust 包仓库 1926/week @ 2024-01-17 • Rust 包仓库 2597/week @ 2024-01-24 • Rust 包仓库 2884/week @ 2024-01-31 • Rust 包仓库 2297/week @ 2024-02-07 • Rust 包仓库 2238/week @ 2024-02-14 • Rust 包仓库 3130/week @ 2024-02-21 • Rust 包仓库 2709/week @ 2024-02-28 • Rust 包仓库 2624/week @ 2024-03-06 • Rust 包仓库 3002/week @ 2024-03-13 • Rust 包仓库 2341/week @ 2024-03-20 • Rust 包仓库

每月下载量 11,114
用于 34 包(8 个直接使用)

Apache-2.0 许可证

36KB

Apache 2.0 licensed

Rust 构建脚本依赖项生成器

这是 Rust 构建脚本依赖项生成器,用于数据/接口定义文件

该功能应集成到 build.script 中的 build.rs。函数 rerun_if_changed_paths(glob_pattern: &str) 将展开 GLOB 模式,并将文件路径和目录路径打印到控制台。Cargo 工具将评估输出。如果自上次构建以来指定的文件已更改,则会重新运行包的编译。

GLOB 模式示例

"data/*" 将列出 "data/" 目录中的所有文件/目录并监视更改

"data/" - 将目录本身添加到监视列表,如果添加了新实体,则触发重新运行。

"data/**/*.protobuf" 将遍历所有子目录,列出所有 protobuf 文件。

"data/**" 将遍历所有子目录,列出所有目录。

经验法则

如果需要检测文件的更改,请添加文件。

如果构建过程中添加了新文件,则添加目录,将触发重新运行。

设置

此示例说明了一个设置。此示例的目的是在 "data/*" 目录中的文件被修改或添加新文件到该目录时重新运行构建过程。

构建过程将执行过程宏,读取这些文件并生成 Rust 代码。

一个完整的示例/设置可以在 GitHub 上找到 test-generator/example

有关构建脚本的其他工具,请参阅 crate build-helper

Cargo.toml

[package]
name = "datatester"
build = "build.rs"

...
[build-dependencies]
build-deps = "^0.1"
...

build.rs


// declared in Cargo.toml as "[build-dependencies]"
extern crate build_deps;

fn main() {
    // Enumerate files in sub-folder "data/*", being relevant for the code-generation (for example)
    // If function returns with error, exit with error message.
    build_deps::rerun_if_changed_paths( "data/*" ).unwrap();

    // Adding the parent directory "data" to the watch-list will capture new-files being added
    build_deps::rerun_if_changed_paths( "data" ).unwrap();
}

集成到条件构建流程中

以下图表展示了构建脚本集成到条件 cargo 构建流程中的方式。

 <Diagram - Build Script Intregration>

依赖项