@@ -405,7 +405,7 @@ impl Step for Standalone {
405405 cmd. arg ( "--html-after-content" ) . arg ( & footer)
406406 . arg ( "--html-before-content" ) . arg ( & version_info)
407407 . arg ( "--html-in-header" ) . arg ( & favicon)
408- . arg ( "--index-page" ) . arg ( "src/doc/index.md" )
408+ . arg ( "--index-page" ) . arg ( & builder . src . join ( "src/doc/index.md" ) )
409409 . arg ( "--markdown-playground-url" )
410410 . arg ( "https://play.rust-lang.org/" )
411411 . arg ( "-o" ) . arg ( & out)
@@ -482,22 +482,27 @@ impl Step for Std {
482482 let my_out = builder. crate_doc_out ( target) ;
483483 t ! ( symlink_dir_force( & builder. config, & my_out, & out_dir) ) ;
484484
485- let mut cargo = builder. cargo ( compiler, Mode :: Std , target, "doc" ) ;
486- compile:: std_cargo ( builder, & compiler, target, & mut cargo) ;
485+ let run_cargo_rustdoc_for = |package : & str | {
486+ let mut cargo = builder. cargo ( compiler, Mode :: Std , target, "rustdoc" ) ;
487+ compile:: std_cargo ( builder, & compiler, target, & mut cargo) ;
487488
488- // Keep a whitelist so we do not build internal stdlib crates, these will be
489- // build by the rustc step later if enabled.
490- cargo. arg ( "--no-deps" ) ;
491- for krate in & [ "alloc" , "core" , "std" ] {
492- cargo. arg ( "-p" ) . arg ( krate) ;
489+ // Keep a whitelist so we do not build internal stdlib crates, these will be
490+ // build by the rustc step later if enabled.
491+ cargo. arg ( "-Z" ) . arg ( "unstable-options" )
492+ . arg ( "-p" ) . arg ( package) ;
493493 // Create all crate output directories first to make sure rustdoc uses
494494 // relative links.
495495 // FIXME: Cargo should probably do this itself.
496- t ! ( fs:: create_dir_all( out_dir. join( krate) ) ) ;
497- }
496+ t ! ( fs:: create_dir_all( out_dir. join( package) ) ) ;
497+ cargo. arg ( "--" )
498+ . arg ( "index-page" ) . arg ( & builder. src . join ( "src/doc/index.md" ) ) ;
498499
499- builder. run ( & mut cargo) ;
500- builder. cp_r ( & my_out, & out) ;
500+ builder. run ( & mut cargo) ;
501+ builder. cp_r ( & my_out, & out) ;
502+ } ;
503+ for krate in & [ "alloc" , "core" , "std" ] {
504+ run_cargo_rustdoc_for ( krate) ;
505+ }
501506 }
502507}
503508
0 commit comments