diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2016-02-12 16:43:06 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2016-02-12 17:16:00 -0800 |
| commit | 5aef0e8fac85fbc1a2ac580f43ea007dd013a777 (patch) | |
| tree | 5c46b352c8abbc0cc3f3d7334009a92fd6bef38b /src/bootstrap | |
| parent | 680bdbc2a7d8b158d2ddb3e88610990a54104ba9 (diff) | |
| download | rust-5aef0e8fac85fbc1a2ac580f43ea007dd013a777.tar.gz rust-5aef0e8fac85fbc1a2ac580f43ea007dd013a777.zip | |
rustbuild: Fix submodules for out of tree builds
Be sure to put the git command into the right directory when we run the submodule management information. Closes #31619
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/build/mod.rs | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/bootstrap/build/mod.rs b/src/bootstrap/build/mod.rs index 6f962aae923..55741921d75 100644 --- a/src/bootstrap/build/mod.rs +++ b/src/bootstrap/build/mod.rs @@ -155,24 +155,25 @@ impl Build { if fs::metadata(self.src.join(".git")).is_err() { return } - let out = output(Command::new("git").arg("submodule").arg("status")); + let git_submodule = || { + let mut cmd = Command::new("git"); + cmd.current_dir(&self.src).arg("submodule"); + return cmd + }; + let out = output(git_submodule().arg("status")); if !out.lines().any(|l| l.starts_with("+") || l.starts_with("-")) { return } - self.run(Command::new("git").arg("submodule").arg("sync")); - self.run(Command::new("git").arg("submodule").arg("init")); - self.run(Command::new("git").arg("submodule").arg("update")); - self.run(Command::new("git").arg("submodule").arg("update") - .arg("--recursive")); - self.run(Command::new("git").arg("submodule").arg("status") - .arg("--recursive")); - self.run(Command::new("git").arg("submodule").arg("foreach") - .arg("--recursive") - .arg("git").arg("clean").arg("-fdx")); - self.run(Command::new("git").arg("submodule").arg("foreach") - .arg("--recursive") - .arg("git").arg("checkout").arg(".")); + self.run(git_submodule().arg("sync")); + self.run(git_submodule().arg("init")); + self.run(git_submodule().arg("update")); + self.run(git_submodule().arg("update").arg("--recursive")); + self.run(git_submodule().arg("status").arg("--recursive")); + self.run(git_submodule().arg("foreach").arg("--recursive") + .arg("git").arg("clean").arg("-fdx")); + self.run(git_submodule().arg("foreach").arg("--recursive") + .arg("git").arg("checkout").arg(".")); } /// Clear out `dir` if our build has been flagged as dirty, and also set |
