$name:ident, $path:expr, $tool_name:expr, $mode:expr
$(,llvm_tools = $llvm:expr)*
$(,is_external_tool = $external:expr)*
- $(,cargo_test_root = $cargo_test_root:expr)*
;
)+) => {
#[derive(Copy, PartialEq, Eq, Clone)]
$(Tool::$name => false $(|| $llvm)*,)+
}
}
-
- /// Whether this tool requires may run Cargo for test crates,
- /// which currently needs setting the environment variable
- /// `__CARGO_TEST_ROOT` to separate it from the workspace.
- pub fn needs_cargo_test_root(&self) -> bool {
- match self {
- $(Tool::$name => false $(|| $cargo_test_root)*,)+
- }
- }
}
impl<'a> Builder<'a> {
UnstableBookGen, "src/tools/unstable-book-gen", "unstable-book-gen", Mode::ToolBootstrap;
Tidy, "src/tools/tidy", "tidy", Mode::ToolBootstrap;
Linkchecker, "src/tools/linkchecker", "linkchecker", Mode::ToolBootstrap;
- CargoTest, "src/tools/cargotest", "cargotest", Mode::ToolBootstrap, cargo_test_root = true;
- Compiletest, "src/tools/compiletest", "compiletest", Mode::ToolBootstrap,
- llvm_tools = true, cargo_test_root = true;
+ CargoTest, "src/tools/cargotest", "cargotest", Mode::ToolBootstrap;
+ Compiletest, "src/tools/compiletest", "compiletest", Mode::ToolBootstrap, llvm_tools = true;
BuildManifest, "src/tools/build-manifest", "build-manifest", Mode::ToolBootstrap;
RemoteTestClient, "src/tools/remote-test-client", "remote-test-client", Mode::ToolBootstrap;
RustInstaller, "src/tools/rust-installer", "fabricate", Mode::ToolBootstrap,
}
}
- // Set `__CARGO_TEST_ROOT` to the build directory if needed.
- if tool.needs_cargo_test_root() {
- cmd.env("__CARGO_TEST_ROOT", &self.config.out);
- }
-
add_lib_path(lib_paths, cmd);
}
rm -rf $CRATE || echo OK
cp -a $HERE/example .
pushd $CRATE
- env RUSTFLAGS="-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x" \
+ # HACK(eddyb) sets `RUSTC_BOOTSTRAP=1` so Cargo can accept nightly features.
+ # These come from the top-level Rust workspace, that this crate is not a
+ # member of, but Cargo tries to load the workspace `Cargo.toml` anyway.
+ env RUSTC_BOOTSTRAP=1 RUSTFLAGS="-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x" \
$CARGO run --target $TARGET | grep "x = 42"
- env RUSTFLAGS="-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x" \
+ env RUSTC_BOOTSTRAP=1 RUSTFLAGS="-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x" \
$CARGO run --target $TARGET --release | grep "x = 42"
popd
popd