@@ -13,6 +13,7 @@ use std::path::{Path, PathBuf};
1313use std:: str:: FromStr ;
1414
1515use crate :: cache:: { Interned , INTERNER } ;
16+ use crate :: channel:: GitInfo ;
1617pub use crate :: flags:: Subcommand ;
1718use crate :: flags:: { Color , Flags } ;
1819use crate :: util:: exe;
@@ -48,7 +49,7 @@ pub struct Config {
4849 /// Call Build::ninja() instead of this.
4950 pub ninja_in_file : bool ,
5051 pub verbose : usize ,
51- pub submodules : bool ,
52+ pub submodules : Option < bool > ,
5253 pub fast_submodules : bool ,
5354 pub compiler_docs : bool ,
5455 pub docs_minification : bool ,
@@ -552,7 +553,7 @@ impl Config {
552553 config. backtrace = true ;
553554 config. rust_optimize = true ;
554555 config. rust_optimize_tests = true ;
555- config. submodules = true ;
556+ config. submodules = None ;
556557 config. fast_submodules = true ;
557558 config. docs = true ;
558559 config. docs_minification = true ;
@@ -658,11 +659,11 @@ impl Config {
658659 config. npm = build. npm . map ( PathBuf :: from) ;
659660 config. gdb = build. gdb . map ( PathBuf :: from) ;
660661 config. python = build. python . map ( PathBuf :: from) ;
662+ config. submodules = build. submodules ;
661663 set ( & mut config. low_priority , build. low_priority ) ;
662664 set ( & mut config. compiler_docs , build. compiler_docs ) ;
663665 set ( & mut config. docs_minification , build. docs_minification ) ;
664666 set ( & mut config. docs , build. docs ) ;
665- set ( & mut config. submodules , build. submodules ) ;
666667 set ( & mut config. fast_submodules , build. fast_submodules ) ;
667668 set ( & mut config. locked_deps , build. locked_deps ) ;
668669 set ( & mut config. vendor , build. vendor ) ;
@@ -1075,6 +1076,10 @@ impl Config {
10751076 pub fn llvm_enabled ( & self ) -> bool {
10761077 self . rust_codegen_backends . contains ( & INTERNER . intern_str ( "llvm" ) )
10771078 }
1079+
1080+ pub fn submodules ( & self , rust_info : & GitInfo ) -> bool {
1081+ self . submodules . unwrap_or ( rust_info. is_git ( ) )
1082+ }
10781083}
10791084
10801085fn set < T > ( field : & mut T , val : Option < T > ) {
0 commit comments