Skip to content

Commit

Permalink
Improve Android support
Browse files Browse the repository at this point in the history
  • Loading branch information
justsmth committed Jul 30, 2024
1 parent 5799bee commit 973bf81
Showing 1 changed file with 40 additions and 5 deletions.
45 changes: 40 additions & 5 deletions aws-lc-sys/builder/cmake_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use crate::{
target_arch, target_env, target_os, target_underscored, target_vendor, OutputLibType,
};
use std::env;
use std::ffi::OsStr;
use std::ffi::OsString;
use std::path::PathBuf;

pub(crate) struct CmakeBuilder {
Expand All @@ -25,11 +25,21 @@ fn test_nasm_command() -> bool {
execute_command("nasm".as_ref(), &["-version".as_ref()]).status
}

fn find_cmake_command() -> Option<&'static OsStr> {
if execute_command("cmake3".as_ref(), &["--version".as_ref()]).status {
Some("cmake3".as_ref())
fn find_cmake_command() -> Option<OsString> {
if let Some(cmake) = option_env("CMAKE") {
if execute_command(cmake.as_ref(), &["--version".as_ref()]).status {
emit_warning(&format!(
"CMAKE environment variable set: {}",
cmake.clone()
));
Some(cmake.into())
} else {
None
}
} else if execute_command("cmake3".as_ref(), &["--version".as_ref()]).status {
Some("cmake3".into())
} else if execute_command("cmake".as_ref(), &["--version".as_ref()]).status {
Some("cmake".as_ref())
Some("cmake".into())
} else {
None
}
Expand Down Expand Up @@ -130,6 +140,13 @@ impl CmakeBuilder {
return cmake_cfg;
}

if let Some(cc) = option_env("CC") {
cmake_cfg.define("CMAKE_C_COMPILER", cc);
}
if let Some(cxx) = option_env("CXX") {
cmake_cfg.define("CMAKE_CXX_COMPILER", cxx);
}

// See issue: https://github.com/aws/aws-lc-rs/issues/453
if target_os() == "windows" {
Self::configure_windows(&mut cmake_cfg);
Expand All @@ -148,6 +165,24 @@ impl CmakeBuilder {
}
}

if target_os() == "android" {
cmake_cfg.define("CMAKE_SYSTEM_NAME", "Android");

let target = target();
let proc = target.split('-').find(|_| true).unwrap();
match proc {
"armv7" => {
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "armv7-a");
}
"arm" => {
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "armv6");
}
_ => {
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", proc);
}
}
}

if target_vendor() == "apple" && target_os().to_lowercase() == "ios" {
cmake_cfg.define("CMAKE_SYSTEM_NAME", "iOS");
if target().ends_with("-ios-sim") || target_arch() == "x86_64" {
Expand Down

0 comments on commit 973bf81

Please sign in to comment.