构建脚本
有时,仅凭 cargo
进行常规构建是不够的。也许您的 crate 在 cargo
成功编译之前需要一些先决条件,例如代码生成,或者需要编译一些原生代码。为了解决这个问题,我们提供了 Cargo 可以运行的构建脚本。
要将构建脚本添加到您的包中,可以在 Cargo.toml
中指定,如下所示
[package]
...
build = "build.rs"
否则,Cargo 默认会在项目目录中查找 build.rs
文件。
如何使用构建脚本
构建脚本只是另一个 Rust 文件,它将在编译包中的任何其他内容之前被编译和调用。因此,它可以用来满足您的 crate 的先决条件。
Cargo 通过此处指定的环境变量为脚本提供输入。
脚本通过标准输出提供输出。所有打印的行都写入 target/debug/build/<pkg>/output
。此外,以 cargo:
为前缀的行将由 Cargo 直接解释,因此可用于定义包编译的参数。
有关更多规范和示例,请阅读Cargo 规范。