Skip to content

Commit c3f8522

Browse files
committed
more fixes
1 parent ff43e6e commit c3f8522

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

src/docbuilder/rustwide_builder.rs

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ impl RustwideBuilder {
550550
build.fetch_build_std_dependencies(&targets)?;
551551
}
552552

553-
self.execute_json_build(build_id, name, version, default_target, build, &metadata, &limits)?;
553+
self.execute_json_build(build_id, name, version, default_target, true, build, &metadata, &limits)?;
554554

555555
let mut has_docs = false;
556556
let mut successful_targets = Vec::new();
@@ -579,7 +579,7 @@ impl RustwideBuilder {
579579
.run_capture()?;
580580
}
581581
// let's assume the JSON build also failed when the main build failed
582-
self.execute_json_build(build_id, name, version, default_target, build, &metadata, &limits)?;
582+
self.execute_json_build(build_id, name, version, default_target, true, build, &metadata, &limits)?;
583583
res =
584584
self.execute_build(default_target, true, build, &limits, &metadata, false, collect_metrics)?;
585585
}
@@ -611,7 +611,9 @@ impl RustwideBuilder {
611611
// Limit the number of targets so that no one can try to build all 200000 possible targets
612612
for target in other_targets.into_iter().take(limits.targets()) {
613613
debug!("building package {} {} for {}", name, version, target);
614-
self.execute_json_build(build_id, name, version, target, build, &metadata, &limits)?;
614+
if !metadata.proc_macro {
615+
self.execute_json_build(build_id, name, version, target, false, build, &metadata, &limits)?;
616+
}
615617
let target_res = self.build_target(
616618
target,
617619
build,
@@ -830,6 +832,7 @@ impl RustwideBuilder {
830832
name: &str,
831833
version: &str,
832834
target: &str,
835+
is_default_target: bool,
833836
build: &Build,
834837
metadata: &Metadata,
835838
limits: &Limits,
@@ -860,17 +863,17 @@ impl RustwideBuilder {
860863
return Ok(());
861864
}
862865

863-
// FIXME: support proc macro? just one time?
864-
// let json_dir = if metadata.proc_macro {
865-
// let target_dir = build.host_target_dir();
866-
// let old_dir = target_dir.join("doc");
867-
// let new_dir = target_dir.join(target).join("doc");
868-
// debug!("rename {} to {}", old_dir.display(), new_dir.display());
869-
// std::fs::create_dir(target_dir.join(target))?;
870-
// std::fs::rename(old_dir, new_dir)?;
871-
// };
872-
873-
let Some(json_filename) = fs::read_dir(build.host_target_dir().join(target).join("doc"))?
866+
let json_dir = if metadata.proc_macro {
867+
assert!(
868+
is_default_target && target == HOST_TARGET,
869+
"can't handle cross-compiling macros"
870+
);
871+
build.host_target_dir().join("doc")
872+
} else {
873+
build.host_target_dir().join(target).join("doc")
874+
};
875+
876+
let Some(json_filename) = fs::read_dir(&json_dir)?
874877
.filter_map(|entry| {
875878
let entry = entry.ok()?;
876879
let path = entry.path();
@@ -884,7 +887,9 @@ impl RustwideBuilder {
884887
else {
885888
error!(
886889
build_id = build_id.0,
887-
target, "no JSON file found in target/doc after successful rustdoc json build"
890+
json_dir = json_dir.to_str(),
891+
target,
892+
"no JSON file found in target/doc after successful rustdoc json build"
888893
);
889894
return Ok(());
890895
};
@@ -1443,16 +1448,15 @@ mod tests {
14431448
))?);
14441449

14451450
let json_prefix = format!("rustdoc-json/{crate_}/{version}/{target}/");
1446-
let json_files: Vec<_> = storage
1451+
let mut json_files: Vec<_> = storage
14471452
.list_prefix(&json_prefix)
14481453
.filter_map(|res| res.ok())
1454+
.map(|f| f.strip_prefix(&json_prefix).unwrap().to_owned())
14491455
.collect();
1456+
json_files.sort();
14501457
dbg!(&json_files);
14511458
assert_eq!(
1452-
json_files
1453-
.into_iter()
1454-
.map(|f| f.strip_prefix(&json_prefix).unwrap().to_owned())
1455-
.collect::<Vec<_>>(),
1459+
json_files,
14561460
vec![
14571461
"empty-library_1.0.0_i686-pc-windows-msvc_45.json.zst".to_string(),
14581462
"empty-library_1.0.0_i686-pc-windows-msvc_latest.json.zst".to_string(),

0 commit comments

Comments
 (0)