@@ -36,6 +36,9 @@ pub(crate) struct Env {
3636 pub ( crate ) android_ndk_home : Option < PathBuf > ,
3737 pub ( crate ) cmake_toolchain_file : Option < PathBuf > ,
3838 pub ( crate ) cpp_runtime_lib : Option < OsString > ,
39+ /// C compiler (ignored if using FIPS)
40+ pub ( crate ) cc : Option < OsString > ,
41+ pub ( crate ) cxx : Option < OsString > ,
3942 pub ( crate ) docs_rs : bool ,
4043}
4144
@@ -149,15 +152,14 @@ impl Env {
149152 let target_with_underscores = target. replace ( '-' , "_" ) ;
150153
151154 // Logic stolen from cmake-rs.
152- let target_var = |name : & str | {
155+ let target_only_var = |name : & str | {
153156 let kind = if host == target { "HOST" } else { "TARGET" } ;
154157
155- // TODO(rmehra): look for just `name` first, as most people just set that
156158 var ( & format ! ( "{name}_{target}" ) )
157159 . or_else ( || var ( & format ! ( "{name}_{target_with_underscores}" ) ) )
158160 . or_else ( || var ( & format ! ( "{kind}_{name}" ) ) )
159- . or_else ( || var ( name) )
160161 } ;
162+ let target_var = |name : & str | target_only_var ( name) . or_else ( || var ( name) ) ;
161163
162164 let boringssl_var = |name : & str | {
163165 // The passed name is the non-fips version of the environment variable,
@@ -186,6 +188,9 @@ impl Env {
186188 android_ndk_home : target_var ( "ANDROID_NDK_HOME" ) . map ( Into :: into) ,
187189 cmake_toolchain_file : target_var ( "CMAKE_TOOLCHAIN_FILE" ) . map ( Into :: into) ,
188190 cpp_runtime_lib : target_var ( "BORING_BSSL_RUST_CPPLIB" ) ,
191+ // matches the `cc` crate
192+ cc : target_only_var ( "CC" ) ,
193+ cxx : target_only_var ( "CXX" ) ,
189194 docs_rs : var ( "DOCS_RS" ) . is_some ( ) ,
190195 }
191196 }
0 commit comments