in aws-lc-fips-sys/builder/main.rs [586:620]
fn setup_include_paths(out_dir: &Path, manifest_dir: &Path) -> PathBuf {
let mut include_paths = vec![
get_rust_include_path(manifest_dir),
get_generated_include_path(manifest_dir),
get_aws_lc_include_path(manifest_dir),
];
if let Some(extra_paths) = get_aws_lc_fips_sys_includes_path() {
include_paths.extend(extra_paths);
}
let include_dir = out_dir.join("include");
std::fs::create_dir_all(&include_dir).unwrap();
// iterate over all the include paths and copy them into the final output
for path in include_paths {
for child in std::fs::read_dir(path).into_iter().flatten().flatten() {
if child.file_type().map_or(false, |t| t.is_file()) {
let _ = std::fs::copy(
child.path(),
include_dir.join(child.path().file_name().unwrap()),
);
continue;
}
// prefer the earliest paths
let options = fs_extra::dir::CopyOptions::new()
.skip_exist(true)
.copy_inside(true);
let _ = fs_extra::dir::copy(child.path(), &include_dir, &options);
}
}
include_dir
}