in aws-lc-fips-sys/builder/main.rs [501:584]
fn main() {
initialize();
prepare_cargo_cfg();
let manifest_dir = current_dir();
let manifest_dir = dunce::canonicalize(Path::new(&manifest_dir)).unwrap();
let prefix_str = prefix_string();
let prefix = if is_no_prefix() {
None
} else {
Some(prefix_str)
};
let builder = get_builder(&prefix, &manifest_dir, &out_dir());
emit_warning("Building with: CMake");
emit_warning(&format!("Symbol Prefix: {:?}", &prefix));
builder.check_dependencies().unwrap();
#[allow(unused_assignments)]
let mut bindings_available = false;
if is_pregenerating_bindings() {
#[cfg(feature = "bindgen")]
{
let src_bindings_path = Path::new(&manifest_dir)
.join("src")
.join(format!("{}.rs", target_platform_prefix("crypto")));
emit_warning(&format!(
"Generating src bindings: {}",
&src_bindings_path.display()
));
if is_external_bindgen() {
external_generate_src_bindings(&manifest_dir, &prefix, &src_bindings_path);
} else {
generate_src_bindings(&manifest_dir, &prefix, &src_bindings_path);
}
bindings_available = true;
}
} else if is_bindgen_required() {
bindings_available = handle_bindgen(&manifest_dir, &prefix);
} else {
bindings_available = true;
}
if !bindings_available {
let options = BindingOptions {
build_prefix: prefix,
include_ssl: cfg!(feature = "ssl"),
disable_prelude: true,
};
let gen_bindings_path = out_dir().join("bindings.rs");
let result = invoke_external_bindgen(&manifest_dir, &options, &gen_bindings_path);
match result {
Ok(()) => {
emit_rustc_cfg("use_bindgen_generated");
bindings_available = true;
}
Err(msg) => eprintln!("Failure invoking external bindgen! {msg}"),
}
}
assert!(
bindings_available,
"aws-lc-fips-sys build failed. Please enable the 'bindgen' feature on aws-lc-rs or aws-lc-fips-sys.\
For more information, see the aws-lc-rs User Guide: https://aws.github.io/aws-lc-rs/index.html"
);
builder.build().unwrap();
println!(
"cargo:include={}",
setup_include_paths(&out_dir(), &manifest_dir).display()
);
// export the artifact names
println!("cargo:libcrypto={}_crypto", prefix_string());
if cfg!(feature = "ssl") {
println!("cargo:libssl={}_ssl", prefix_string());
}
println!("cargo:conf={}", OSSL_CONF_DEFINES.join(","));
println!("cargo:rerun-if-changed=builder/");
println!("cargo:rerun-if-changed=aws-lc/");
}