@@ -130,6 +130,13 @@ impl CmakeBuilder {
130
130
return cmake_cfg;
131
131
}
132
132
133
+ if let Some ( cc) = option_env ( "CC" ) {
134
+ cmake_cfg. define ( "CMAKE_C_COMPILER" , cc) ;
135
+ }
136
+ if let Some ( cxx) = option_env ( "CXX" ) {
137
+ cmake_cfg. define ( "CMAKE_CXX_COMPILER" , cxx) ;
138
+ }
139
+
133
140
// See issue: https://github.com/aws/aws-lc-rs/issues/453
134
141
if target_os ( ) == "windows" {
135
142
Self :: configure_windows ( & mut cmake_cfg) ;
@@ -148,6 +155,24 @@ impl CmakeBuilder {
148
155
}
149
156
}
150
157
158
+ if target_os ( ) == "android" {
159
+ cmake_cfg. define ( "CMAKE_SYSTEM_NAME" , "Android" ) ;
160
+
161
+ let target = target ( ) ;
162
+ let proc = target. split ( '-' ) . find ( |_| true ) . unwrap ( ) ;
163
+ match proc {
164
+ "armv7" => {
165
+ cmake_cfg. define ( "CMAKE_SYSTEM_PROCESSOR" , "armv7-a" ) ;
166
+ }
167
+ "arm" => {
168
+ cmake_cfg. define ( "CMAKE_SYSTEM_PROCESSOR" , "armv6" ) ;
169
+ }
170
+ _ => {
171
+ cmake_cfg. define ( "CMAKE_SYSTEM_PROCESSOR" , proc) ;
172
+ }
173
+ }
174
+ }
175
+
151
176
if target_vendor ( ) == "apple" && target_os ( ) . to_lowercase ( ) == "ios" {
152
177
cmake_cfg. define ( "CMAKE_SYSTEM_NAME" , "iOS" ) ;
153
178
if target ( ) . ends_with ( "-ios-sim" ) || target_arch ( ) == "x86_64" {
@@ -264,7 +289,9 @@ impl crate::Builder for CmakeBuilder {
264
289
}
265
290
}
266
291
if let Some ( cmake_cmd) = find_cmake_command ( ) {
267
- env:: set_var ( "CMAKE" , cmake_cmd) ;
292
+ if option_env ( "CMAKE" ) . is_none ( ) {
293
+ env:: set_var ( "CMAKE" , cmake_cmd) ;
294
+ }
268
295
} else {
269
296
eprintln ! ( "Missing dependency: cmake" ) ;
270
297
missing_dependency = true ;
0 commit comments