in aws-lc-sys/builder/cmake_builder.rs [243:323]
fn configure_windows(&self, cmake_cfg: &mut cmake::Config) {
match (target_env().as_str(), target_arch().as_str()) {
("msvc", "aarch64") => {
// If CMAKE_GENERATOR is either not set or not set to "Ninja"
let cmake_generator = optional_env("CMAKE_GENERATOR");
if cmake_generator.is_none() || cmake_generator.unwrap().to_lowercase() != "ninja" {
// The following is not supported by the Ninja generator
cmake_cfg.generator_toolset(format!(
"ClangCL{}",
if cfg!(target_arch = "x86_64") {
",host=x64"
} else {
""
}
));
cmake_cfg.define("CMAKE_GENERATOR_PLATFORM", "ARM64");
}
cmake_cfg.static_crt(is_crt_static());
cmake_cfg.define("CMAKE_SYSTEM_NAME", "Windows");
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "ARM64");
}
("msvc", "x86") => {
cmake_cfg.static_crt(is_crt_static());
cmake_cfg.define("CMAKE_SYSTEM_NAME", "");
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "");
}
("msvc", _) => {
cmake_cfg.static_crt(is_crt_static());
}
("gnu", "x86") => {
cmake_cfg.define("CMAKE_SYSTEM_NAME", "Windows");
cmake_cfg.define("CMAKE_SYSTEM_PROCESSOR", "x86");
}
_ => {}
}
if use_prebuilt_nasm() {
emit_warning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
emit_warning("!!! Using pre-built NASM binaries !!!");
emit_warning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
let script_name = if cfg!(target_os = "windows") {
"prebuilt-nasm.bat"
} else {
"prebuilt-nasm.sh"
};
let script_path = self
.manifest_dir
.join("builder")
.join(script_name)
.display()
.to_string();
let script_path = script_path.replace('\\', "/");
cmake_cfg.define("CMAKE_ASM_NASM_COMPILER", script_path.as_str());
// Without the following definition, the build fails with a message similar to the one
// reported here: https://gitlab.kitware.com/cmake/cmake/-/issues/19453
// The variables below were found in the associated fix:
// https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4257/diffs
cmake_cfg.define(
"CMAKE_ASM_NASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded",
"",
);
cmake_cfg.define(
"CMAKE_ASM_NASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL",
"",
);
cmake_cfg.define(
"CMAKE_ASM_NASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug",
"",
);
cmake_cfg.define(
"CMAKE_ASM_NASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL",
"",
);
cmake_cfg.define(
"CMAKE_ASM_NASM_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_ProgramDatabase",
"",
);
}
}