mirror of
https://github.com/rust-lang/cargo
synced 2024-10-13 19:22:33 +00:00
Bail out an error when using cargo::
in custom build script
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
This commit is contained in:
parent
45782b6b8a
commit
4bdeb53cb5
|
@ -690,7 +690,17 @@ impl BuildOutput {
|
|||
continue;
|
||||
}
|
||||
let data = match iter.next() {
|
||||
Some(val) => val,
|
||||
Some(val) => {
|
||||
if val.starts_with(":") {
|
||||
// Line started with `cargo::`.
|
||||
bail!("unsupported output in {}: `{}`\n\
|
||||
Found a `cargo::key=value` build directive which is reserved for future use.\n\
|
||||
Either change the directive to `cargo:key=value` syntax (note the single `:`) or upgrade your version of Rust.\n\
|
||||
See https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script \
|
||||
for more information about build script outputs.", whence, line);
|
||||
}
|
||||
val
|
||||
}
|
||||
None => continue,
|
||||
};
|
||||
|
||||
|
|
|
@ -5140,6 +5140,35 @@ for more information about build script outputs.
|
|||
.run();
|
||||
}
|
||||
|
||||
#[cargo_test]
|
||||
fn wrong_syntax_with_two_colons() {
|
||||
let p = project()
|
||||
.file("src/lib.rs", "")
|
||||
.file(
|
||||
"build.rs",
|
||||
r#"
|
||||
fn main() {
|
||||
println!("cargo::foo=bar");
|
||||
}
|
||||
"#,
|
||||
)
|
||||
.build();
|
||||
|
||||
p.cargo("build")
|
||||
.with_status(101)
|
||||
.with_stderr(
|
||||
"\
|
||||
[COMPILING] foo [..]
|
||||
error: unsupported output in build script of `foo v0.0.1 ([ROOT]/foo)`: `cargo::foo=bar`
|
||||
Found a `cargo::key=value` build directive which is reserved for future use.
|
||||
Either change the directive to `cargo:key=value` syntax (note the single `:`) or upgrade your version of Rust.
|
||||
See https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script \
|
||||
for more information about build script outputs.
|
||||
",
|
||||
)
|
||||
.run();
|
||||
}
|
||||
|
||||
#[cargo_test]
|
||||
fn custom_build_closes_stdin() {
|
||||
// Ensure stdin is closed to prevent deadlock.
|
||||
|
|
Loading…
Reference in a new issue