diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-05-15 17:56:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-15 17:56:48 +0200 |
| commit | f851f97e8734203a062eb6282fa6314401769c5d (patch) | |
| tree | 83cd4109ba44ba1ad79906b52baca06e118f512f | |
| parent | 62b834fb9f3e18d54e56d12824a9fa1780a5fc9d (diff) | |
| parent | b9b67b7d5b3e50e319ad6ae3f38c4890570cc8a7 (diff) | |
| download | rust-f851f97e8734203a062eb6282fa6314401769c5d.tar.gz rust-f851f97e8734203a062eb6282fa6314401769c5d.zip | |
Rollup merge of #85185 - GuillaumeGomez:generate-not-more-docs-than-necessary, r=Mark-Simulacrum
Generate not more docs than necessary This is something that `@Nemo157` was talking about: they wanted that when using `x.py doc std`, it only generated `std` (and the crates "before" it). r? `@Mark-Simulacrum`
| -rw-r--r-- | src/bootstrap/doc.rs | 31 | ||||
| -rw-r--r-- | src/ci/docker/host-x86_64/mingw-check/Dockerfile | 2 |
2 files changed, 23 insertions, 10 deletions
diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs index 326a6fdaa80..f9972ac7b9d 100644 --- a/src/bootstrap/doc.rs +++ b/src/bootstrap/doc.rs @@ -451,6 +451,22 @@ impl Step for Std { builder.run(&mut cargo.into()); }; + + let paths = builder + .paths + .iter() + .map(components_simplified) + .filter_map(|path| { + if path.get(0) == Some(&"library") { + Some(path[1].to_owned()) + } else if !path.is_empty() { + Some(path[0].to_owned()) + } else { + None + } + }) + .collect::<Vec<_>>(); + // Only build the following crates. While we could just iterate over the // folder structure, that would also build internal crates that we do // not want to show in documentation. These crates will later be visited @@ -464,20 +480,17 @@ impl Step for Std { let krates = ["core", "alloc", "std", "proc_macro", "test"]; for krate in &krates { run_cargo_rustdoc_for(krate); + if paths.iter().any(|p| p == krate) { + // No need to document more of the libraries if we have the one we want. + break; + } } builder.cp_r(&out_dir, &out); // Look for library/std, library/core etc in the `x.py doc` arguments and // open the corresponding rendered docs. - for path in builder.paths.iter().map(components_simplified) { - let requested_crate = if path.get(0) == Some(&"library") { - &path[1] - } else if !path.is_empty() { - &path[0] - } else { - continue; - }; - if krates.contains(&requested_crate) { + for requested_crate in paths { + if krates.iter().any(|k| *k == requested_crate.as_str()) { let index = out.join(requested_crate).join("index.html"); open(builder, &index); } diff --git a/src/ci/docker/host-x86_64/mingw-check/Dockerfile b/src/ci/docker/host-x86_64/mingw-check/Dockerfile index a9398649cf0..fd6dc563a0e 100644 --- a/src/ci/docker/host-x86_64/mingw-check/Dockerfile +++ b/src/ci/docker/host-x86_64/mingw-check/Dockerfile @@ -34,7 +34,7 @@ ENV SCRIPT python3 ../x.py --stage 2 test src/tools/expand-yaml-anchors && \ python3 ../x.py build --stage 0 src/tools/build-manifest && \ python3 ../x.py test --stage 0 src/tools/compiletest && \ python3 ../x.py test --stage 2 src/tools/tidy && \ - python3 ../x.py doc --stage 0 library/std && \ + python3 ../x.py doc --stage 0 library/test && \ /scripts/validate-toolstate.sh && \ # Runs checks to ensure that there are no ES5 issues in our JS code. es-check es5 ../src/librustdoc/html/static/*.js |
