]> git.lizzy.rs Git - rust.git/commitdiff
Try to make top-level Cargo.toml work without __CARGO_TEST_ROOT.
authorEduard-Mihai Burtescu <edy.burt@gmail.com>
Sat, 24 Nov 2018 07:31:01 +0000 (09:31 +0200)
committerEduard-Mihai Burtescu <edy.burt@gmail.com>
Sun, 25 Nov 2018 21:13:58 +0000 (23:13 +0200)
src/bootstrap/test.rs
src/bootstrap/tool.rs
src/test/run-make/thumb-none-cortex-m/Makefile
src/test/run-make/thumb-none-qemu/script.sh

index c50e6a270339f8354b63eaf6a8eef748e7e70bbb..e55773011df8eb41f157e3959fbbc5254ac33308 100644 (file)
@@ -1934,7 +1934,6 @@ fn run(self, builder: &Builder) {
                 .arg("generate-lockfile")
                 .arg("--manifest-path")
                 .arg(&toml)
-                .env("__CARGO_TEST_ROOT", &dir)
                 .current_dir(&dir),
         );
     }
index 4acc739db57bf1d020685bfcebbd3a45c0d0d75f..58c5296beb35e5281fedd8006280ec16357caa83 100644 (file)
@@ -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)]
@@ -288,15 +287,6 @@ pub fn uses_llvm_tools(&self) -> bool {
                     $(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> {
@@ -372,9 +362,8 @@ fn run(self, builder: &Builder) -> PathBuf {
     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,
@@ -693,11 +682,6 @@ fn prepare_tool_cmd(&self, compiler: Compiler, tool: Tool, cmd: &mut Command) {
             }
         }
 
-        // 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);
     }
 
index 741bce921e67e60922a114165920291ac5bd46b1..819439069eaede90eb16a2cd78846f18e8a2ebc4 100644 (file)
@@ -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:
index 0f1c49f3a71b1e34a142ae0adf42d068ea48e3a9..c5cbff5c3c36d210f7e27245a70630fe284d93ea 100644 (file)
@@ -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