Allow to pass "compiler" arguments to doc subcommand
This commit is contained in:
parent
e846f9c44f
commit
bc49c3b651
1 changed files with 44 additions and 10 deletions
|
|
@ -537,7 +537,7 @@ impl Step for Rustc {
|
|||
|
||||
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||
let builder = run.builder;
|
||||
run.krate("rustc-main").default_condition(builder.config.docs)
|
||||
run.krate("rustc-main").path("compiler").default_condition(builder.config.docs)
|
||||
}
|
||||
|
||||
fn make_run(run: RunConfig<'_>) {
|
||||
|
|
@ -553,9 +553,24 @@ impl Step for Rustc {
|
|||
fn run(self, builder: &Builder<'_>) {
|
||||
let stage = self.stage;
|
||||
let target = self.target;
|
||||
let mut is_explicit_request = false;
|
||||
builder.info(&format!("Documenting stage{} compiler ({})", stage, target));
|
||||
|
||||
if !builder.config.compiler_docs {
|
||||
let paths = builder
|
||||
.paths
|
||||
.iter()
|
||||
.map(components_simplified)
|
||||
.filter_map(|path| {
|
||||
if path.get(0) == Some(&"compiler") {
|
||||
is_explicit_request = true;
|
||||
path.get(1).map(|p| p.to_owned())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
if !builder.config.compiler_docs && !is_explicit_request {
|
||||
builder.info("\tskipping - compiler/librustdoc docs disabled");
|
||||
return;
|
||||
}
|
||||
|
|
@ -603,15 +618,34 @@ impl Step for Rustc {
|
|||
cargo.rustdocflag("--extern-html-root-url");
|
||||
cargo.rustdocflag("ena=https://docs.rs/ena/latest/");
|
||||
|
||||
// Find dependencies for top level crates.
|
||||
let mut compiler_crates = HashSet::new();
|
||||
for root_crate in &["rustc_driver", "rustc_codegen_llvm", "rustc_codegen_ssa"] {
|
||||
compiler_crates.extend(
|
||||
builder
|
||||
.in_tree_crates(root_crate, Some(target))
|
||||
.into_iter()
|
||||
.map(|krate| krate.name),
|
||||
);
|
||||
|
||||
if paths.is_empty() {
|
||||
// Find dependencies for top level crates.
|
||||
for root_crate in &["rustc_driver", "rustc_codegen_llvm", "rustc_codegen_ssa"] {
|
||||
compiler_crates.extend(
|
||||
builder
|
||||
.in_tree_crates(root_crate, Some(target))
|
||||
.into_iter()
|
||||
.map(|krate| krate.name),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
for root_crate in paths {
|
||||
if !builder.src.join("compiler").join(&root_crate).exists() {
|
||||
builder.info(&format!(
|
||||
"\tskipping - compiler/{} (unknown compiler crate)",
|
||||
root_crate
|
||||
));
|
||||
} else {
|
||||
compiler_crates.extend(
|
||||
builder
|
||||
.in_tree_crates(root_crate, Some(target))
|
||||
.into_iter()
|
||||
.map(|krate| krate.name),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for krate in &compiler_crates {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue