@@ -23,7 +23,7 @@ use crate::cache::{INTERNER, Interned};
2323use crate :: config:: Config ;
2424
2525macro_rules! book {
26- ( $( $name: ident, $path: expr, $book_name: expr; ) +) => {
26+ ( $( $name: ident, $path: expr, $book_name: expr, $book_ver : expr ; ) +) => {
2727 $(
2828 #[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
2929 pub struct $name {
@@ -49,26 +49,36 @@ macro_rules! book {
4949 builder. ensure( Rustbook {
5050 target: self . target,
5151 name: INTERNER . intern_str( $book_name) ,
52+ version: $book_ver,
5253 } )
5354 }
5455 }
5556 ) +
5657 }
5758}
5859
60+ // NOTE: When adding a book here, make sure to ALSO build the book by
61+ // adding a build step in `src/bootstrap/builder.rs`!
5962book ! (
60- Nomicon , "src/doc/nomicon " , "nomicon" ;
61- Reference , "src/doc/reference " , "reference" ;
62- EditionGuide , "src/doc/edition-guide " , "edition-guide" ;
63- RustdocBook , "src/doc/rustdoc " , "rustdoc" ;
64- RustcBook , "src/doc/rustc" , "rustc" ;
65- RustByExample , "src/doc/rust-by-example " , "rust-by-example" ;
63+ EditionGuide , "src/doc/edition-guide " , "edition-guide" , RustbookVersion :: MdBook1 ;
64+ Nomicon , "src/doc/nomicon " , "nomicon" , RustbookVersion :: MdBook1 ;
65+ Reference , "src/doc/reference " , "reference" , RustbookVersion :: MdBook1 ;
66+ RustByExample , "src/doc/rust-by-example " , "rust-by-example" , RustbookVersion :: MdBook1 ;
67+ RustcBook , "src/doc/rustc" , "rustc" , RustbookVersion :: MdBook1 ;
68+ RustdocBook , "src/doc/rustdoc " , "rustdoc" , RustbookVersion :: MdBook1 ;
6669) ;
6770
71+ #[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
72+ enum RustbookVersion {
73+ MdBook1 ,
74+ MdBook2 ,
75+ }
76+
6877#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
6978struct Rustbook {
7079 target : Interned < String > ,
7180 name : Interned < String > ,
81+ version : RustbookVersion ,
7282}
7383
7484impl Step for Rustbook {
@@ -90,6 +100,7 @@ impl Step for Rustbook {
90100 target : self . target ,
91101 name : self . name ,
92102 src : INTERNER . intern_path ( src) ,
103+ version : self . version ,
93104 } ) ;
94105 }
95106}
@@ -122,6 +133,7 @@ impl Step for UnstableBook {
122133 target : self . target ,
123134 name : INTERNER . intern_str ( "unstable-book" ) ,
124135 src : builder. md_doc_out ( self . target ) ,
136+ version : RustbookVersion :: MdBook1 ,
125137 } )
126138 }
127139}
@@ -175,6 +187,7 @@ struct RustbookSrc {
175187 target : Interned < String > ,
176188 name : Interned < String > ,
177189 src : Interned < PathBuf > ,
190+ version : RustbookVersion ,
178191}
179192
180193impl Step for RustbookSrc {
@@ -205,11 +218,19 @@ impl Step for RustbookSrc {
205218 }
206219 builder. info ( & format ! ( "Rustbook ({}) - {}" , target, name) ) ;
207220 let _ = fs:: remove_dir_all ( & out) ;
221+
222+ let vers = match self . version {
223+ RustbookVersion :: MdBook1 => "1" ,
224+ RustbookVersion :: MdBook2 => "2" ,
225+ } ;
226+
208227 builder. run ( rustbook_cmd
209228 . arg ( "build" )
210229 . arg ( & src)
211230 . arg ( "-d" )
212- . arg ( out) ) ;
231+ . arg ( out)
232+ . arg ( "-m" )
233+ . arg ( vers) ) ;
213234 }
214235}
215236
@@ -255,6 +276,7 @@ impl Step for TheBook {
255276 builder. ensure ( Rustbook {
256277 target,
257278 name : INTERNER . intern_string ( name. to_string ( ) ) ,
279+ version : RustbookVersion :: MdBook1 ,
258280 } ) ;
259281
260282 // building older edition redirects
@@ -263,18 +285,21 @@ impl Step for TheBook {
263285 builder. ensure ( Rustbook {
264286 target,
265287 name : INTERNER . intern_string ( source_name) ,
288+ version : RustbookVersion :: MdBook1 ,
266289 } ) ;
267290
268291 let source_name = format ! ( "{}/second-edition" , name) ;
269292 builder. ensure ( Rustbook {
270293 target,
271294 name : INTERNER . intern_string ( source_name) ,
295+ version : RustbookVersion :: MdBook1 ,
272296 } ) ;
273297
274298 let source_name = format ! ( "{}/2018-edition" , name) ;
275299 builder. ensure ( Rustbook {
276300 target,
277301 name : INTERNER . intern_string ( source_name) ,
302+ version : RustbookVersion :: MdBook1 ,
278303 } ) ;
279304
280305 // build the version info page and CSS
0 commit comments