in aws-lc-sys/builder/cmake_builder.rs [325:379]
fn configure_open_harmony(cmake_cfg: &mut cmake::Config) {
let mut cflags = vec!["-Wno-unused-command-line-argument"];
let mut asmflags = vec![];
// If a toolchain is not specified by the environment
if optional_env_optional_crate_target("CMAKE_TOOLCHAIN_FILE").is_none() {
if let Ok(ndk) = env::var("OHOS_NDK_HOME") {
set_env_for_target(
"CMAKE_TOOLCHAIN_FILE",
format!("{ndk}/native/build/cmake/ohos.toolchain.cmake"),
);
} else if let Ok(sdk) = env::var("OHOS_SDK_NATIVE") {
set_env_for_target(
"CMAKE_TOOLCHAIN_FILE",
format!("{sdk}/build/cmake/ohos.toolchain.cmake"),
);
} else {
emit_warning(
"Neither OHOS_NDK_HOME nor OHOS_SDK_NATIVE are set! No toolchain found.",
);
}
}
match effective_target().as_str() {
"aarch64-unknown-linux-ohos" => {
cmake_cfg.define("OHOS_ARCH", "arm64-v8a");
}
"armv7-unknown-linux-ohos" => {
const ARM7_FLAGS: [&str; 6] = [
"-march=armv7-a",
"-mfloat-abi=softfp",
"-mtune=generic-armv7-a",
"-mthumb",
"-mfpu=neon",
"-DHAVE_NEON",
];
cflags.extend(ARM7_FLAGS);
asmflags.extend(ARM7_FLAGS);
cmake_cfg.define("OHOS_ARCH", "armeabi-v7a");
}
"x86_64-unknown-linux-ohos" => {
const X86_64_FLAGS: [&str; 3] = ["-msse4.1", "-DHAVE_NEON_X86", "-DHAVE_NEON"];
cflags.extend(X86_64_FLAGS);
asmflags.extend(X86_64_FLAGS);
cmake_cfg.define("OHOS_ARCH", "x86_64");
}
ohos_target => {
emit_warning(format!("Target: {ohos_target} is not support yet!").as_str());
}
}
cmake_cfg
.cflag(cflags.join(" ").as_str())
.cxxflag(cflags.join(" ").as_str())
.asmflag(asmflags.join(" ").as_str());
}