@@ -13,6 +13,7 @@ use std::path::{Path, PathBuf};
13
13
use std:: str:: FromStr ;
14
14
15
15
use crate :: cache:: { Interned , INTERNER } ;
16
+ use crate :: channel:: GitInfo ;
16
17
pub use crate :: flags:: Subcommand ;
17
18
use crate :: flags:: { Color , Flags } ;
18
19
use crate :: util:: exe;
@@ -48,7 +49,7 @@ pub struct Config {
48
49
/// Call Build::ninja() instead of this.
49
50
pub ninja_in_file : bool ,
50
51
pub verbose : usize ,
51
- pub submodules : bool ,
52
+ pub submodules : Option < bool > ,
52
53
pub fast_submodules : bool ,
53
54
pub compiler_docs : bool ,
54
55
pub docs_minification : bool ,
@@ -552,7 +553,7 @@ impl Config {
552
553
config. backtrace = true ;
553
554
config. rust_optimize = true ;
554
555
config. rust_optimize_tests = true ;
555
- config. submodules = true ;
556
+ config. submodules = None ;
556
557
config. fast_submodules = true ;
557
558
config. docs = true ;
558
559
config. docs_minification = true ;
@@ -658,11 +659,11 @@ impl Config {
658
659
config. npm = build. npm . map ( PathBuf :: from) ;
659
660
config. gdb = build. gdb . map ( PathBuf :: from) ;
660
661
config. python = build. python . map ( PathBuf :: from) ;
662
+ config. submodules = build. submodules ;
661
663
set ( & mut config. low_priority , build. low_priority ) ;
662
664
set ( & mut config. compiler_docs , build. compiler_docs ) ;
663
665
set ( & mut config. docs_minification , build. docs_minification ) ;
664
666
set ( & mut config. docs , build. docs ) ;
665
- set ( & mut config. submodules , build. submodules ) ;
666
667
set ( & mut config. fast_submodules , build. fast_submodules ) ;
667
668
set ( & mut config. locked_deps , build. locked_deps ) ;
668
669
set ( & mut config. vendor , build. vendor ) ;
@@ -1075,6 +1076,10 @@ impl Config {
1075
1076
pub fn llvm_enabled ( & self ) -> bool {
1076
1077
self . rust_codegen_backends . contains ( & INTERNER . intern_str ( "llvm" ) )
1077
1078
}
1079
+
1080
+ pub fn submodules ( & self , rust_info : & GitInfo ) -> bool {
1081
+ self . submodules . unwrap_or ( rust_info. is_git ( ) )
1082
+ }
1078
1083
}
1079
1084
1080
1085
fn set < T > ( field : & mut T , val : Option < T > ) {
0 commit comments