@@ -104,6 +104,7 @@ pub struct Config {
104
104
pub llvm_allow_old_toolchain : bool ,
105
105
pub llvm_polly : bool ,
106
106
pub llvm_from_ci : bool ,
107
+ pub llvm_build_config : HashMap < String , String > ,
107
108
108
109
pub use_lld : bool ,
109
110
pub lld_enabled : bool ,
@@ -432,6 +433,7 @@ struct Llvm {
432
433
allow_old_toolchain : Option < bool > ,
433
434
polly : Option < bool > ,
434
435
download_ci_llvm : Option < StringOrBool > ,
436
+ build_config : Option < HashMap < String , String > > ,
435
437
}
436
438
437
439
#[ derive( Deserialize , Default , Clone , Merge ) ]
@@ -743,6 +745,7 @@ impl Config {
743
745
config. llvm_use_linker = llvm. use_linker . clone ( ) ;
744
746
config. llvm_allow_old_toolchain = llvm. allow_old_toolchain . unwrap_or ( false ) ;
745
747
config. llvm_polly = llvm. polly . unwrap_or ( false ) ;
748
+ config. llvm_build_config = llvm. build_config . clone ( ) . unwrap_or ( Default :: default ( ) ) ;
746
749
config. llvm_from_ci = match llvm. download_ci_llvm {
747
750
Some ( StringOrBool :: String ( s) ) => {
748
751
assert ! ( s == "if-available" , "unknown option `{}` for download-ci-llvm" , s) ;
@@ -789,6 +792,7 @@ impl Config {
789
792
check_ci_llvm ! ( llvm. use_linker) ;
790
793
check_ci_llvm ! ( llvm. allow_old_toolchain) ;
791
794
check_ci_llvm ! ( llvm. polly) ;
795
+ check_ci_llvm ! ( llvm. build_config) ;
792
796
793
797
// CI-built LLVM can be either dynamic or static.
794
798
let ci_llvm = config. out . join ( & * config. build . triple ) . join ( "ci-llvm" ) ;
0 commit comments