是否可以仅针对发布模式调用 build.rs?

Is it possible to invoke a build.rs only for release mode?

在 Rust crate 中,是否可以仅针对发布模式调用 build.rs?

可以在Cargo.toml中指定:

[package]
build = "build.rs"

问题是,为了开发,它延迟了编译 crate 源代码的开始。 Cargo guide 似乎没有提供这样的选项。

您可以使用这个构建脚本。 CargoPROFILE 环境变量传递给 rustc 调用,可用于确定活动配置文件。

// build.rs
use std::env;

pub fn main() {
    if Ok("release".to_owned()) == env::var("PROFILE") {
        panic!("I'm only panicking in release mode")
    }
}