Can a build script take arguments?

2019-01-29 01:01发布

问题:

I was going through the build script documentation and was wondering if I can pass any argument to the script in build.rs from the command line.

fn main() {
    let args: Vec<String> = env::args().collect();
    let var = &args[1];
}

Would something like this work in the build script? And how could I specify the arguments from command line?

回答1:

No.

Documentation suggests passing data to the build script using environment variables.

There is no documentation indicating that it can be done and the test suite does not test for it. It only tests for environment variables.

I attempted the method that @Stephan suggests from Passing program arguments through Cargo, however cargo build does not follow the same behavior as cargo run:

$ cargo build -- uoeuoe
error: Found argument 'uoeuoe' which wasn't expected, or isn't valid in this context

USAGE:
    cargo.exe build [OPTIONS]

For more information try --help


标签: rust