@@ -415,6 +415,7 @@ impl RustwideBuilder {
415
415
let cargo_metadata =
416
416
CargoMetadata :: load ( & self . workspace , & self . toolchain , & build. host_source_dir ( ) ) ?;
417
417
418
+ let is_default_target = target. is_none ( ) ;
418
419
let target = target. or_else ( || metadata. default_target . as_ref ( ) . map ( |s| s. as_str ( ) ) ) ;
419
420
420
421
let mut rustdoc_flags: Vec < String > = vec ! [
@@ -474,13 +475,19 @@ impl RustwideBuilder {
474
475
. run ( )
475
476
. is_ok ( )
476
477
} ) ;
478
+ // If we're passed a default_target which requires a cross-compile,
479
+ // cargo will put the output in `target/<target>/doc`.
480
+ // However, if this is the default build, we don't want it there,
481
+ // we want it in `target/doc`.
477
482
if let Some ( explicit_target) = target {
478
- // mv target/$explicit_target/doc target/doc
479
- let target_dir = build. host_target_dir ( ) ;
480
- let old_dir = target_dir. join ( explicit_target) . join ( "doc" ) ;
481
- let new_dir = target_dir. join ( "doc" ) ;
482
- debug ! ( "rename {} to {}" , old_dir. display( ) , new_dir. display( ) ) ;
483
- std:: fs:: rename ( old_dir, new_dir) ?;
483
+ if is_default_target {
484
+ // mv target/$explicit_target/doc target/doc
485
+ let target_dir = build. host_target_dir ( ) ;
486
+ let old_dir = target_dir. join ( explicit_target) . join ( "doc" ) ;
487
+ let new_dir = target_dir. join ( "doc" ) ;
488
+ debug ! ( "rename {} to {}" , old_dir. display( ) , new_dir. display( ) ) ;
489
+ std:: fs:: rename ( old_dir, new_dir) ?;
490
+ }
484
491
}
485
492
486
493
Ok ( FullBuildResult {
0 commit comments