Skip to content

Commit df128bd

Browse files
committed
Auto merge of #31620 - alexcrichton:fix-out-of-tree-builds, r=brson
This removes creating some extraneous directories and also fixes some submodule management with out of tree builds. Closes #31619
2 parents d3ffad7 + 5aef0e8 commit df128bd

File tree

2 files changed

+100
-95
lines changed

2 files changed

+100
-95
lines changed

configure

+85-81
Original file line numberDiff line numberDiff line change
@@ -1327,97 +1327,101 @@ then
13271327
fi
13281328
fi
13291329

1330-
step_msg "making directories"
1330+
if [ -z "$CFG_ENABLE_RUSTBUILD" ]; then
13311331

1332-
for i in \
1333-
doc doc/std doc/extra \
1334-
dl tmp dist
1335-
do
1336-
make_dir $i
1337-
done
1332+
step_msg "making directories"
13381333

1339-
for t in $CFG_HOST
1340-
do
1341-
make_dir $t/llvm
1342-
done
1334+
for i in \
1335+
doc doc/std doc/extra \
1336+
dl tmp dist
1337+
do
1338+
make_dir $i
1339+
done
13431340

1344-
for t in $CFG_HOST
1345-
do
1346-
make_dir $t/rustllvm
1347-
done
1341+
for t in $CFG_HOST
1342+
do
1343+
make_dir $t/llvm
1344+
done
13481345

1349-
for t in $CFG_TARGET
1350-
do
1351-
make_dir $t/rt
1352-
for s in 0 1 2 3
1346+
for t in $CFG_HOST
13531347
do
1354-
make_dir $t/rt/stage$s
1355-
make_dir $t/rt/jemalloc
1356-
make_dir $t/rt/compiler-rt
1357-
for i in \
1358-
isaac sync test \
1359-
arch/i386 arch/x86_64 arch/arm arch/aarch64 arch/mips arch/powerpc
1360-
do
1361-
make_dir $t/rt/stage$s/$i
1362-
done
1348+
make_dir $t/rustllvm
13631349
done
1364-
done
13651350

1366-
for h in $CFG_HOST
1367-
do
1368-
for t in $CFG_TARGET
1351+
for t in $CFG_TARGET
1352+
do
1353+
make_dir $t/rt
1354+
for s in 0 1 2 3
13691355
do
1370-
# host bin dir stage0
1371-
make_dir $h/stage0/bin
1372-
1373-
# host lib dir stage0
1374-
make_dir $h/stage0/lib
1375-
1376-
# host test dir stage0
1377-
make_dir $h/stage0/test
1378-
1379-
# target bin dir stage0
1380-
make_dir $h/stage0/lib/rustlib/$t/bin
1381-
1382-
# target lib dir stage0
1383-
make_dir $h/stage0/lib/rustlib/$t/lib
1384-
1385-
for i in 1 2 3
1386-
do
1387-
# host bin dir
1388-
make_dir $h/stage$i/bin
1389-
1390-
# host lib dir
1391-
make_dir $h/stage$i/$CFG_LIBDIR_RELATIVE
1392-
1393-
# host test dir
1394-
make_dir $h/stage$i/test
1395-
1396-
# target bin dir
1397-
make_dir $h/stage$i/$CFG_LIBDIR_RELATIVE/rustlib/$t/bin
1398-
1399-
# target lib dir
1400-
make_dir $h/stage$i/$CFG_LIBDIR_RELATIVE/rustlib/$t/lib
1401-
done
1356+
make_dir $t/rt/stage$s
1357+
make_dir $t/rt/jemalloc
1358+
make_dir $t/rt/compiler-rt
1359+
for i in \
1360+
isaac sync test \
1361+
arch/i386 arch/x86_64 arch/arm arch/aarch64 arch/mips arch/powerpc
1362+
do
1363+
make_dir $t/rt/stage$s/$i
1364+
done
14021365
done
1366+
done
14031367

1404-
make_dir $h/test/run-pass
1405-
make_dir $h/test/run-pass-valgrind
1406-
make_dir $h/test/run-pass-fulldeps
1407-
make_dir $h/test/run-fail
1408-
make_dir $h/test/run-fail-fulldeps
1409-
make_dir $h/test/compile-fail
1410-
make_dir $h/test/parse-fail
1411-
make_dir $h/test/compile-fail-fulldeps
1412-
make_dir $h/test/bench
1413-
make_dir $h/test/perf
1414-
make_dir $h/test/pretty
1415-
make_dir $h/test/debuginfo-gdb
1416-
make_dir $h/test/debuginfo-lldb
1417-
make_dir $h/test/codegen
1418-
make_dir $h/test/codegen-units
1419-
make_dir $h/test/rustdoc
1420-
done
1368+
for h in $CFG_HOST
1369+
do
1370+
for t in $CFG_TARGET
1371+
do
1372+
# host bin dir stage0
1373+
make_dir $h/stage0/bin
1374+
1375+
# host lib dir stage0
1376+
make_dir $h/stage0/lib
1377+
1378+
# host test dir stage0
1379+
make_dir $h/stage0/test
1380+
1381+
# target bin dir stage0
1382+
make_dir $h/stage0/lib/rustlib/$t/bin
1383+
1384+
# target lib dir stage0
1385+
make_dir $h/stage0/lib/rustlib/$t/lib
1386+
1387+
for i in 1 2 3
1388+
do
1389+
# host bin dir
1390+
make_dir $h/stage$i/bin
1391+
1392+
# host lib dir
1393+
make_dir $h/stage$i/$CFG_LIBDIR_RELATIVE
1394+
1395+
# host test dir
1396+
make_dir $h/stage$i/test
1397+
1398+
# target bin dir
1399+
make_dir $h/stage$i/$CFG_LIBDIR_RELATIVE/rustlib/$t/bin
1400+
1401+
# target lib dir
1402+
make_dir $h/stage$i/$CFG_LIBDIR_RELATIVE/rustlib/$t/lib
1403+
done
1404+
done
1405+
1406+
make_dir $h/test/run-pass
1407+
make_dir $h/test/run-pass-valgrind
1408+
make_dir $h/test/run-pass-fulldeps
1409+
make_dir $h/test/run-fail
1410+
make_dir $h/test/run-fail-fulldeps
1411+
make_dir $h/test/compile-fail
1412+
make_dir $h/test/parse-fail
1413+
make_dir $h/test/compile-fail-fulldeps
1414+
make_dir $h/test/bench
1415+
make_dir $h/test/perf
1416+
make_dir $h/test/pretty
1417+
make_dir $h/test/debuginfo-gdb
1418+
make_dir $h/test/debuginfo-lldb
1419+
make_dir $h/test/codegen
1420+
make_dir $h/test/codegen-units
1421+
make_dir $h/test/rustdoc
1422+
done
1423+
1424+
fi
14211425

14221426
# Configure submodules
14231427
step_msg "configuring submodules"

src/bootstrap/build/mod.rs

+15-14
Original file line numberDiff line numberDiff line change
@@ -160,24 +160,25 @@ impl Build {
160160
if fs::metadata(self.src.join(".git")).is_err() {
161161
return
162162
}
163-
let out = output(Command::new("git").arg("submodule").arg("status"));
163+
let git_submodule = || {
164+
let mut cmd = Command::new("git");
165+
cmd.current_dir(&self.src).arg("submodule");
166+
return cmd
167+
};
168+
let out = output(git_submodule().arg("status"));
164169
if !out.lines().any(|l| l.starts_with("+") || l.starts_with("-")) {
165170
return
166171
}
167172

168-
self.run(Command::new("git").arg("submodule").arg("sync"));
169-
self.run(Command::new("git").arg("submodule").arg("init"));
170-
self.run(Command::new("git").arg("submodule").arg("update"));
171-
self.run(Command::new("git").arg("submodule").arg("update")
172-
.arg("--recursive"));
173-
self.run(Command::new("git").arg("submodule").arg("status")
174-
.arg("--recursive"));
175-
self.run(Command::new("git").arg("submodule").arg("foreach")
176-
.arg("--recursive")
177-
.arg("git").arg("clean").arg("-fdx"));
178-
self.run(Command::new("git").arg("submodule").arg("foreach")
179-
.arg("--recursive")
180-
.arg("git").arg("checkout").arg("."));
173+
self.run(git_submodule().arg("sync"));
174+
self.run(git_submodule().arg("init"));
175+
self.run(git_submodule().arg("update"));
176+
self.run(git_submodule().arg("update").arg("--recursive"));
177+
self.run(git_submodule().arg("status").arg("--recursive"));
178+
self.run(git_submodule().arg("foreach").arg("--recursive")
179+
.arg("git").arg("clean").arg("-fdx"));
180+
self.run(git_submodule().arg("foreach").arg("--recursive")
181+
.arg("git").arg("checkout").arg("."));
181182
}
182183

183184
/// Clear out `dir` if our build has been flagged as dirty, and also set

0 commit comments

Comments
 (0)