boring-sys: Pull Android CMake params into a function
This commit is contained in:
parent
00b14f6379
commit
570cc95c90
|
|
@ -33,6 +33,21 @@ const CMAKE_PARAMS_ANDROID_NDK: &[(&str, &[(&str, &str)])] = &[
|
||||||
("x86_64", &[("ANDROID_ABI", "x86_64")]),
|
("x86_64", &[("ANDROID_ABI", "x86_64")]),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
fn cmake_params_android() -> &'static [(&'static str, &'static str)] {
|
||||||
|
let arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap();
|
||||||
|
let cmake_params_android = if cfg!(feature = "ndk-old-gcc") {
|
||||||
|
CMAKE_PARAMS_ANDROID_NDK_OLD_GCC
|
||||||
|
} else {
|
||||||
|
CMAKE_PARAMS_ANDROID_NDK
|
||||||
|
};
|
||||||
|
for (android_arch, params) in cmake_params_android {
|
||||||
|
if *android_arch == arch {
|
||||||
|
return *params;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&[]
|
||||||
|
}
|
||||||
|
|
||||||
const CMAKE_PARAMS_IOS: &[(&str, &[(&str, &str)])] = &[
|
const CMAKE_PARAMS_IOS: &[(&str, &[(&str, &str)])] = &[
|
||||||
(
|
(
|
||||||
"aarch64",
|
"aarch64",
|
||||||
|
|
@ -106,24 +121,14 @@ fn get_boringssl_cmake_config() -> cmake::Config {
|
||||||
// Add platform-specific parameters.
|
// Add platform-specific parameters.
|
||||||
match os.as_ref() {
|
match os.as_ref() {
|
||||||
"android" => {
|
"android" => {
|
||||||
let cmake_params_android = if cfg!(feature = "ndk-old-gcc") {
|
|
||||||
CMAKE_PARAMS_ANDROID_NDK_OLD_GCC
|
|
||||||
} else {
|
|
||||||
CMAKE_PARAMS_ANDROID_NDK
|
|
||||||
};
|
|
||||||
|
|
||||||
// We need ANDROID_NDK_HOME to be set properly.
|
// We need ANDROID_NDK_HOME to be set properly.
|
||||||
println!("cargo:rerun-if-env-changed=ANDROID_NDK_HOME");
|
println!("cargo:rerun-if-env-changed=ANDROID_NDK_HOME");
|
||||||
let android_ndk_home = std::env::var("ANDROID_NDK_HOME")
|
let android_ndk_home = std::env::var("ANDROID_NDK_HOME")
|
||||||
.expect("Please set ANDROID_NDK_HOME for Android build");
|
.expect("Please set ANDROID_NDK_HOME for Android build");
|
||||||
let android_ndk_home = std::path::Path::new(&android_ndk_home);
|
let android_ndk_home = std::path::Path::new(&android_ndk_home);
|
||||||
for (android_arch, params) in cmake_params_android {
|
for (name, value) in cmake_params_android() {
|
||||||
if *android_arch == arch {
|
eprintln!("android arch={} add {}={}", arch, name, value);
|
||||||
for (name, value) in *params {
|
boringssl_cmake.define(name, value);
|
||||||
eprintln!("android arch={} add {}={}", arch, name, value);
|
|
||||||
boringssl_cmake.define(name, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
let toolchain_file = android_ndk_home.join("build/cmake/android.toolchain.cmake");
|
let toolchain_file = android_ndk_home.join("build/cmake/android.toolchain.cmake");
|
||||||
let toolchain_file = toolchain_file.to_str().unwrap();
|
let toolchain_file = toolchain_file.to_str().unwrap();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue