Skip to content

Commit 37984bb

Browse files
committed
unify path syncing logic for vendor and dist
Signed-off-by: onur-ozkan <[email protected]>
1 parent 60d1465 commit 37984bb

File tree

2 files changed

+31
-35
lines changed

2 files changed

+31
-35
lines changed

Diff for: src/bootstrap/src/core/build_steps/dist.rs

+9-25
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use object::BinaryFormat;
1919

2020
use crate::core::build_steps::doc::DocumentationFormat;
2121
use crate::core::build_steps::tool::{self, Tool};
22+
use crate::core::build_steps::vendor::default_paths_to_vendor;
2223
use crate::core::build_steps::{compile, llvm};
2324
use crate::core::builder::{Builder, Kind, RunConfig, ShouldRun, Step};
2425
use crate::core::config::TargetSelection;
@@ -1016,35 +1017,18 @@ impl Step for PlainSourceTarball {
10161017
if builder.rust_info().is_managed_git_subrepository()
10171018
|| builder.rust_info().is_from_tarball()
10181019
{
1019-
// FIXME: This code looks _very_ similar to what we have in `src/core/build_steps/vendor.rs`
1020-
// perhaps it should be removed in favor of making `dist` perform the `vendor` step?
1021-
10221020
builder.require_and_update_all_submodules();
10231021

10241022
// Vendor all Cargo dependencies
10251023
let mut cmd = command(&builder.initial_cargo);
1026-
cmd.arg("vendor")
1027-
.arg("--versioned-dirs")
1028-
.arg("--sync")
1029-
.arg(builder.src.join("./src/tools/cargo/Cargo.toml"))
1030-
.arg("--sync")
1031-
.arg(builder.src.join("./src/tools/rust-analyzer/Cargo.toml"))
1032-
.arg("--sync")
1033-
.arg(builder.src.join("./compiler/rustc_codegen_cranelift/Cargo.toml"))
1034-
.arg("--sync")
1035-
.arg(builder.src.join("./compiler/rustc_codegen_gcc/Cargo.toml"))
1036-
.arg("--sync")
1037-
.arg(builder.src.join("./library/Cargo.toml"))
1038-
.arg("--sync")
1039-
.arg(builder.src.join("./src/bootstrap/Cargo.toml"))
1040-
.arg("--sync")
1041-
.arg(builder.src.join("./src/tools/opt-dist/Cargo.toml"))
1042-
.arg("--sync")
1043-
.arg(builder.src.join("./src/tools/rustc-perf/Cargo.toml"))
1044-
.arg("--sync")
1045-
.arg(builder.src.join("./src/tools/rustbook/Cargo.toml"))
1046-
// Will read the libstd Cargo.toml
1047-
// which uses the unstable `public-dependency` feature.
1024+
cmd.arg("vendor").arg("--versioned-dirs");
1025+
1026+
for p in default_paths_to_vendor(builder) {
1027+
cmd.arg("--sync").arg(p);
1028+
}
1029+
1030+
cmd
1031+
// Will read the libstd Cargo.toml which uses the unstable `public-dependency` feature.
10481032
.env("RUSTC_BOOTSTRAP", "1")
10491033
.current_dir(plain_dst_src);
10501034

Diff for: src/bootstrap/src/core/build_steps/vendor.rs

+22-10
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,26 @@ use crate::core::build_steps::tool::SUBMODULES_FOR_RUSTBOOK;
44
use crate::core::builder::{Builder, RunConfig, ShouldRun, Step};
55
use crate::utils::exec::command;
66

7+
/// List of default paths used for vendoring for `x vendor` and dist tarballs.
8+
pub fn default_paths_to_vendor(builder: &Builder<'_>) -> Vec<PathBuf> {
9+
let mut paths = vec![];
10+
for p in [
11+
"src/tools/cargo/Cargo.toml",
12+
"src/tools/rust-analyzer/Cargo.toml",
13+
"compiler/rustc_codegen_cranelift/Cargo.toml",
14+
"compiler/rustc_codegen_gcc/Cargo.toml",
15+
"library/Cargo.toml",
16+
"src/bootstrap/Cargo.toml",
17+
"src/tools/rustbook/Cargo.toml",
18+
"src/tools/rustc-perf/Cargo.toml",
19+
"src/tools/opt-dist/Cargo.toml",
20+
] {
21+
paths.push(builder.src.join(p));
22+
}
23+
24+
paths
25+
}
26+
727
#[derive(Debug, Clone, Hash, PartialEq, Eq)]
828
pub(crate) struct Vendor {
929
sync_args: Vec<PathBuf>,
@@ -42,16 +62,8 @@ impl Step for Vendor {
4262
}
4363

4464
// Sync these paths by default.
45-
for p in [
46-
"src/tools/cargo/Cargo.toml",
47-
"src/tools/rust-analyzer/Cargo.toml",
48-
"compiler/rustc_codegen_cranelift/Cargo.toml",
49-
"compiler/rustc_codegen_gcc/Cargo.toml",
50-
"library/Cargo.toml",
51-
"src/bootstrap/Cargo.toml",
52-
"src/tools/rustbook/Cargo.toml",
53-
] {
54-
cmd.arg("--sync").arg(builder.src.join(p));
65+
for p in default_paths_to_vendor(builder) {
66+
cmd.arg("--sync").arg(p);
5567
}
5668

5769
// Also sync explicitly requested paths.

0 commit comments

Comments
 (0)