构建脚本

有时,仅凭 cargo 进行常规构建是不够的。也许您的 crate 在 cargo 成功编译之前需要一些先决条件,例如代码生成,或者需要编译一些原生代码。为了解决这个问题,我们提供了 Cargo 可以运行的构建脚本。

要将构建脚本添加到您的包中,可以在 Cargo.toml 中指定,如下所示

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

否则,Cargo 默认会在项目目录中查找 build.rs 文件。

如何使用构建脚本

构建脚本只是另一个 Rust 文件,它将在编译包中的任何其他内容之前被编译和调用。因此,它可以用来满足您的 crate 的先决条件。

Cargo 通过此处指定的环境变量为脚本提供输入。

脚本通过标准输出提供输出。所有打印的行都写入 target/debug/build/<pkg>/output。此外,以 cargo: 为前缀的行将由 Cargo 直接解释,因此可用于定义包编译的参数。

有关更多规范和示例,请阅读Cargo 规范