Fix bundled build on Fedora

Fedora uses "lib64" for the CMake output directory. The current search
path is limited to "lib". This fix searches in "lib" and "lib64 for
applicable libraries in a bundled build.
This commit is contained in:
Matt Woelfel
2021-12-11 22:03:12 -06:00
parent 3a5ecef929
commit 49c42b6c10
+21 -8
View File
@@ -421,17 +421,30 @@ fn copy_dynamic_libraries(sdl2_compiled_path: &PathBuf, target_os: &str) {
copy_library_file(&src_dll_path, &target_path);
} else if target_os != "emscripten" {
// Find all libraries build and copy them, symlinks included.
let lib_path = sdl2_compiled_path.join("lib");
for entry in std::fs::read_dir(&lib_path).expect("Couldn't readdir lib") {
let entry = entry.expect("Error looking at lib dir");
if let Ok(file_type) = entry.file_type() {
if file_type.is_symlink() {
copy_library_symlink(&entry.path(), &target_path);
} else if file_type.is_file() {
copy_library_file(&entry.path(), &target_path)
let mut found = false;
let lib_dirs = &["lib", "lib64"];
for lib_dir in lib_dirs {
let lib_path = sdl2_compiled_path.join(lib_dir);
if lib_path.exists() {
found = true;
for entry in std::fs::read_dir(&lib_path)
.unwrap_or_else(|_| panic!("Couldn't readdir {}", lib_dir))
{
let entry = entry.expect("Error looking at lib dir");
if let Ok(file_type) = entry.file_type() {
if file_type.is_symlink() {
copy_library_symlink(&entry.path(), &target_path);
} else if file_type.is_file() {
copy_library_file(&entry.path(), &target_path)
}
}
}
break;
}
}
if !found {
panic!("Failed to find CMake output dir");
}
}
}