Skip to content

Commit

Permalink
Try to make top-level Cargo.toml work without __CARGO_TEST_ROOT.
Browse files Browse the repository at this point in the history
  • Loading branch information
eddyb committed Nov 25, 2018
1 parent 5bd451b commit e281446
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 22 deletions.
1 change: 0 additions & 1 deletion src/bootstrap/test.rs
Expand Up @@ -1934,7 +1934,6 @@ impl Step for Distcheck {
.arg("generate-lockfile")
.arg("--manifest-path")
.arg(&toml)
.env("__CARGO_TEST_ROOT", &dir)
.current_dir(&dir),
);
}
Expand Down
20 changes: 2 additions & 18 deletions src/bootstrap/tool.rs
Expand Up @@ -264,7 +264,6 @@ macro_rules! tool {
$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)]
Expand All @@ -288,15 +287,6 @@ macro_rules! tool {
$(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> {
Expand Down Expand Up @@ -372,9 +362,8 @@ tool!(
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,
Expand Down Expand Up @@ -693,11 +682,6 @@ impl<'a> Builder<'a> {
}
}

// 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);
}

Expand Down
5 changes: 4 additions & 1 deletion src/test/run-make/thumb-none-cortex-m/Makefile
Expand Up @@ -32,7 +32,10 @@ all:
mkdir -p $(WORK_DIR)
-cd $(WORK_DIR) && rm -rf $(CRATE)
cd $(WORK_DIR) && bash -x $(HERE)/../git_clone_sha1.sh $(CRATE) $(CRATE_URL) $(CRATE_SHA1)
cd $(WORK_DIR) && cd $(CRATE) && $(CARGO) build --target $(TARGET) -v
# 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.
cd $(WORK_DIR) && cd $(CRATE) && env RUSTC_BOOTSTRAP=1 $(CARGO) build --target $(TARGET) -v
else

all:
Expand Down
7 changes: 5 additions & 2 deletions src/test/run-make/thumb-none-qemu/script.sh
Expand Up @@ -8,9 +8,12 @@ pushd $WORK_DIR
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

0 comments on commit e281446

Please sign in to comment.