rewrite env-dep-info to rmake
This commit is contained in:
parent
87c7a42ba9
commit
fe76650144
@ -4,13 +4,15 @@
|
|||||||
|
|
||||||
use crate::{command, cwd, env_var, set_host_rpath};
|
use crate::{command, cwd, env_var, set_host_rpath};
|
||||||
|
|
||||||
/// Construct a new `rustc` invocation.
|
/// Construct a new `rustc` invocation. This will automatically set the library
|
||||||
|
/// search path as `-L cwd()`. Use [`bare_rustc`] to avoid this.
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub fn rustc() -> Rustc {
|
pub fn rustc() -> Rustc {
|
||||||
Rustc::new()
|
Rustc::new()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Construct a plain `rustc` invocation with no flags set.
|
/// Construct a plain `rustc` invocation with no flags set. Note that [`set_host_rpath`]
|
||||||
|
/// still presets the environment variable `HOST_RPATH_DIR` by default.
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub fn bare_rustc() -> Rustc {
|
pub fn bare_rustc() -> Rustc {
|
||||||
Rustc::bare()
|
Rustc::bare()
|
||||||
@ -42,7 +44,8 @@ fn setup_common() -> Command {
|
|||||||
impl Rustc {
|
impl Rustc {
|
||||||
// `rustc` invocation constructor methods
|
// `rustc` invocation constructor methods
|
||||||
|
|
||||||
/// Construct a new `rustc` invocation.
|
/// Construct a new `rustc` invocation. This will automatically set the library
|
||||||
|
/// search path as `-L cwd()`. Use [`bare_rustc`] to avoid this.
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
let mut cmd = setup_common();
|
let mut cmd = setup_common();
|
||||||
|
@ -23,7 +23,6 @@ run-make/dep-info/Makefile
|
|||||||
run-make/dump-ice-to-disk/Makefile
|
run-make/dump-ice-to-disk/Makefile
|
||||||
run-make/dump-mono-stats/Makefile
|
run-make/dump-mono-stats/Makefile
|
||||||
run-make/emit-to-stdout/Makefile
|
run-make/emit-to-stdout/Makefile
|
||||||
run-make/env-dep-info/Makefile
|
|
||||||
run-make/export-executable-symbols/Makefile
|
run-make/export-executable-symbols/Makefile
|
||||||
run-make/extern-diff-internal-name/Makefile
|
run-make/extern-diff-internal-name/Makefile
|
||||||
run-make/extern-flag-disambiguates/Makefile
|
run-make/extern-flag-disambiguates/Makefile
|
||||||
@ -58,7 +57,6 @@ run-make/issue-35164/Makefile
|
|||||||
run-make/issue-36710/Makefile
|
run-make/issue-36710/Makefile
|
||||||
run-make/issue-47551/Makefile
|
run-make/issue-47551/Makefile
|
||||||
run-make/issue-69368/Makefile
|
run-make/issue-69368/Makefile
|
||||||
run-make/issue-83045/Makefile
|
|
||||||
run-make/issue-84395-lto-embed-bitcode/Makefile
|
run-make/issue-84395-lto-embed-bitcode/Makefile
|
||||||
run-make/issue-85019-moved-src-dir/Makefile
|
run-make/issue-85019-moved-src-dir/Makefile
|
||||||
run-make/issue-85401-static-mir/Makefile
|
run-make/issue-85401-static-mir/Makefile
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
include ../tools.mk
|
|
||||||
|
|
||||||
# FIXME(eddyb) provide `HOST_RUSTC` and `TARGET_RUSTC`
|
|
||||||
# instead of hardcoding them everywhere they're needed.
|
|
||||||
ifeq ($(IS_MUSL_HOST),1)
|
|
||||||
ADDITIONAL_ARGS := $(RUSTFLAGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
all:
|
|
||||||
EXISTING_ENV=1 EXISTING_OPT_ENV=1 $(RUSTC) --emit dep-info main.rs
|
|
||||||
$(CGREP) "# env-dep:EXISTING_ENV=1" < $(TMPDIR)/main.d
|
|
||||||
$(CGREP) "# env-dep:EXISTING_OPT_ENV=1" < $(TMPDIR)/main.d
|
|
||||||
$(CGREP) "# env-dep:NONEXISTENT_OPT_ENV" < $(TMPDIR)/main.d
|
|
||||||
$(CGREP) "# env-dep:ESCAPE\nESCAPE\\" < $(TMPDIR)/main.d
|
|
||||||
# Proc macro
|
|
||||||
$(BARE_RUSTC) $(ADDITIONAL_ARGS) --out-dir $(TMPDIR) macro_def.rs
|
|
||||||
EXISTING_PROC_MACRO_ENV=1 $(RUSTC) --emit dep-info macro_use.rs
|
|
||||||
$(CGREP) "# env-dep:EXISTING_PROC_MACRO_ENV=1" < $(TMPDIR)/macro_use.d
|
|
||||||
$(CGREP) "# env-dep:NONEXISTENT_PROC_MACEO_ENV" < $(TMPDIR)/macro_use.d
|
|
6
tests/run-make/env-dep-info/correct_macro.d
Normal file
6
tests/run-make/env-dep-info/correct_macro.d
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
macro_use.d: macro_use.rs
|
||||||
|
|
||||||
|
macro_use.rs:
|
||||||
|
|
||||||
|
# env-dep:EXISTING_PROC_MACRO_ENV=1
|
||||||
|
# env-dep:NONEXISTENT_PROC_MACEO_ENV
|
8
tests/run-make/env-dep-info/correct_main.d
Normal file
8
tests/run-make/env-dep-info/correct_main.d
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
main.d: main.rs
|
||||||
|
|
||||||
|
main.rs:
|
||||||
|
|
||||||
|
# env-dep:ESCAPE\nESCAPE\\
|
||||||
|
# env-dep:EXISTING_ENV=1
|
||||||
|
# env-dep:EXISTING_OPT_ENV=1
|
||||||
|
# env-dep:NONEXISTENT_OPT_ENV
|
21
tests/run-make/env-dep-info/rmake.rs
Normal file
21
tests/run-make/env-dep-info/rmake.rs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Inside dep-info emit files, #71858 made it so all accessed environment
|
||||||
|
// variables are usefully printed. This test checks that this feature works
|
||||||
|
// as intended by checking if the environment variables used in compilation
|
||||||
|
// appear in the output dep-info files.
|
||||||
|
// See https://github.com/rust-lang/rust/issues/40364
|
||||||
|
|
||||||
|
use run_make_support::{diff, rustc};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
rustc()
|
||||||
|
.env("EXISTING_ENV", "1")
|
||||||
|
.env("EXISTING_OPT_ENV", "1")
|
||||||
|
.emit("dep-info")
|
||||||
|
.input("main.rs")
|
||||||
|
.run();
|
||||||
|
diff().expected_file("correct_main.d").actual_file("main.d").run();
|
||||||
|
// Procedural macro
|
||||||
|
rustc().input("macro_def.rs").run();
|
||||||
|
rustc().env("EXISTING_PROC_MACRO_ENV", "1").emit("dep-info").input("macro_use.rs").run();
|
||||||
|
diff().expected_file("correct_macro.d").actual_file("macro_use.d").run();
|
||||||
|
}
|
@ -27,7 +27,6 @@ fn main() {
|
|||||||
.input("b.rs")
|
.input("b.rs")
|
||||||
.arg("--verbose")
|
.arg("--verbose")
|
||||||
.run();
|
.run();
|
||||||
fs_wrapper::create_dir("wrong_directory");
|
|
||||||
bare_rustc()
|
bare_rustc()
|
||||||
.extern_("b", rust_lib_name("b"))
|
.extern_("b", rust_lib_name("b"))
|
||||||
.crate_type("rlib")
|
.crate_type("rlib")
|
||||||
|
3
tests/run-make/rustc-macro-dep-files/correct.d
Normal file
3
tests/run-make/rustc-macro-dep-files/correct.d
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
bar.d: bar.rs
|
||||||
|
|
||||||
|
bar.rs:
|
@ -4,10 +4,11 @@
|
|||||||
// that macro code is not falsely seen as coming from a different file in dep-info.
|
// that macro code is not falsely seen as coming from a different file in dep-info.
|
||||||
// See https://github.com/rust-lang/rust/issues/36625
|
// See https://github.com/rust-lang/rust/issues/36625
|
||||||
|
|
||||||
use run_make_support::{fs_wrapper, rustc, target};
|
use run_make_support::{diff, rustc, target};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
rustc().input("foo.rs").run();
|
rustc().input("foo.rs").run();
|
||||||
rustc().input("bar.rs").target(target()).emit("dep-info").run();
|
rustc().input("bar.rs").target(target()).emit("dep-info").run();
|
||||||
assert!(!fs_wrapper::read_to_string("bar.d").contains("proc-macro source"));
|
// The emitted file should not contain "proc-macro source".
|
||||||
|
diff().expected_file("correct.d").actual_file("bar.d").run();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user