From 23518f7e270f2711737e6ecb67324b8abbb8f8bf Mon Sep 17 00:00:00 2001 From: Jose Lane Date: Sat, 14 Jun 2025 06:47:07 +0800 Subject: [PATCH] install docs for each target in different directory --- src/bootstrap/src/core/build_steps/dist.rs | 18 ++++++++++++------ src/tools/linkchecker/linkcheck.sh | 4 +++- src/tools/miri/ci/build-all-targets.sh | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs index e0f632eda0e29..e034170adb85e 100644 --- a/src/bootstrap/src/core/build_steps/dist.rs +++ b/src/bootstrap/src/core/build_steps/dist.rs @@ -76,12 +76,13 @@ impl Step for Docs { let host = self.host; builder.default_doc(&[]); - let dest = "share/doc/rust/html"; + let dest = format!("share/doc/rust/html/{host}"); let mut tarball = Tarball::new(builder, "rust-docs", &host.triple); + tarball.include_target_in_component_name(true); tarball.set_product_name("Rust Documentation"); - tarball.add_bulk_dir(builder.doc_out(host), dest); - tarball.add_file(builder.src.join("src/doc/robots.txt"), dest, FileType::Regular); + tarball.add_bulk_dir(builder.doc_out(host), &dest); + tarball.add_file(builder.src.join("src/doc/robots.txt"), &dest, FileType::Regular); Some(tarball.generate()) } } @@ -113,12 +114,13 @@ impl Step for JsonDocs { DocumentationFormat::Json, )); - let dest = "share/doc/rust/json"; + let dest = format!("share/doc/rust/json/{host}"); let mut tarball = Tarball::new(builder, "rust-docs-json", &host.triple); + tarball.include_target_in_component_name(true); tarball.set_product_name("Rust Documentation In JSON Format"); tarball.is_preview(true); - tarball.add_bulk_dir(builder.json_doc_out(host), dest); + tarball.add_bulk_dir(builder.json_doc_out(host), &dest); Some(tarball.generate()) } } @@ -1688,7 +1690,11 @@ impl Step for Extended { let prepare = |name: &str| { builder.create_dir(&exe.join(name)); - let dir = if name == "rust-std" || name == "rust-analysis" { + let dir = if name == "rust-std" + || name == "rust-analysis" + || name == "rust-docs" + || name == "rust-json-docs" + { format!("{}-{}", name, target.triple) } else if name == "rust-analyzer" { "rust-analyzer-preview".to_string() diff --git a/src/tools/linkchecker/linkcheck.sh b/src/tools/linkchecker/linkcheck.sh index 6c1e668a7f0d0..2e6615010e109 100755 --- a/src/tools/linkchecker/linkcheck.sh +++ b/src/tools/linkchecker/linkcheck.sh @@ -23,7 +23,9 @@ set -e -html_dir="$(rustc +nightly --print sysroot)/share/doc/rust/html" +# Only check host docs now +host_triple=$(rustc +nightly --print host-tuple) +html_dir="$(rustc +nightly --print sysroot)/share/doc/rust/html/$host_triple" if [ ! -d "$html_dir" ] then diff --git a/src/tools/miri/ci/build-all-targets.sh b/src/tools/miri/ci/build-all-targets.sh index b93d4f5eec431..2bb8f2654ba5b 100755 --- a/src/tools/miri/ci/build-all-targets.sh +++ b/src/tools/miri/ci/build-all-targets.sh @@ -9,7 +9,7 @@ FAILS_DIR=failures rm -rf $FAILS_DIR mkdir $FAILS_DIR -PLATFORM_SUPPORT_FILE=$(rustc +miri --print sysroot)/share/doc/rust/html/rustc/platform-support.html +PLATFORM_SUPPORT_FILE=$(rustc +miri --print sysroot)/share/doc/rust/html/$(rustc +miri --print host-tuple)/rustc/platform-support.html for target in $(python3 ci/scrape-targets.py $PLATFORM_SUPPORT_FILE); do # Wipe the cache before every build to minimize disk usage