Skip to content

Commit 0e9246c

Browse files
committed
give build_package access to metadata
as a side effect, only calculate metadata once instead of for each target
1 parent 095e673 commit 0e9246c

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/docbuilder/rustwide_builder.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,8 @@ impl RustwideBuilder {
189189
build_dir
190190
.build(&self.toolchain, &krate, sandbox)
191191
.run(|build| {
192-
let res = self.execute_build(None, build, &limits)?;
192+
let metadata = Metadata::from_source_dir(&build.host_source_dir())?;
193+
let res = self.execute_build(None, build, &limits, &metadata)?;
193194
if !res.result.successful {
194195
bail!("failed to build dummy crate for {}", self.rustc_version);
195196
}
@@ -312,9 +313,10 @@ impl RustwideBuilder {
312313
let mut files_list = None;
313314
let mut has_docs = false;
314315
let mut successful_targets = Vec::new();
316+
let metadata = Metadata::from_source_dir(&build.host_source_dir())?;
315317

316318
// Do an initial build and then copy the sources in the database
317-
let res = self.execute_build(None, &build, &limits)?;
319+
let res = self.execute_build(None, &build, &limits, &metadata)?;
318320
if res.result.successful {
319321
debug!("adding sources into database");
320322
let prefix = format!("sources/{}/{}", name, version);
@@ -352,6 +354,7 @@ impl RustwideBuilder {
352354
&limits,
353355
&local_storage.path(),
354356
&mut successful_targets,
357+
&metadata,
355358
)?;
356359
}
357360
self.upload_docs(&conn, name, version, local_storage.path())?;
@@ -396,8 +399,9 @@ impl RustwideBuilder {
396399
limits: &Limits,
397400
local_storage: &Path,
398401
successful_targets: &mut Vec<String>,
402+
metadata: &Metadata,
399403
) -> Result<()> {
400-
let target_res = self.execute_build(Some(target), build, limits)?;
404+
let target_res = self.execute_build(Some(target), build, limits, metadata)?;
401405
if target_res.result.successful {
402406
// Cargo is not giving any error and not generating documentation of some crates
403407
// when we use a target compile options. Check documentation exists before
@@ -416,8 +420,8 @@ impl RustwideBuilder {
416420
target: Option<&str>,
417421
build: &Build,
418422
limits: &Limits,
423+
metadata: &Metadata,
419424
) -> Result<FullBuildResult> {
420-
let metadata = Metadata::from_source_dir(&build.host_source_dir())?;
421425
let cargo_metadata =
422426
CargoMetadata::load(&self.workspace, &self.toolchain, &build.host_source_dir())?;
423427

0 commit comments

Comments
 (0)