[macOS] Fix MoltenVK SDK detection after file location changes in 1.3.275.0.

(cherry picked from commit a2c1c01941)
This commit is contained in:
bruvzg 2024-01-17 19:33:03 +02:00 committed by Rémi Verschelde
parent 39271362c3
commit ba41f42c82
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 25 additions and 10 deletions

View File

@ -66,21 +66,30 @@ def get_mvk_sdk_path():
if not os.path.exists(dirname): if not os.path.exists(dirname):
return "" return ""
ver_file = "0.0.0.0" ver_num = ver_parse("0.0.0.0")
ver_num = ver_parse(ver_file)
files = os.listdir(dirname) files = os.listdir(dirname)
lib_name_out = dirname
for file in files: for file in files:
if os.path.isdir(os.path.join(dirname, file)): if os.path.isdir(os.path.join(dirname, file)):
ver_comp = ver_parse(file) ver_comp = ver_parse(file)
lib_name = os.path.join( if ver_comp > ver_num:
os.path.join(dirname, file), "MoltenVK/MoltenVK.xcframework/macos-arm64_x86_64/libMoltenVK.a" # Try new SDK location.
) lib_name = os.path.join(
if os.path.isfile(lib_name) and ver_comp > ver_num: os.path.join(dirname, file), "macOS/lib/MoltenVK.xcframework/macos-arm64_x86_64/"
ver_num = ver_comp )
ver_file = file if os.path.isfile(os.path.join(lib_name, "libMoltenVK.a")):
ver_num = ver_comp
lib_name_out = lib_name
else:
# Try old SDK location.
lib_name = os.path.join(
os.path.join(dirname, file), "MoltenVK/MoltenVK.xcframework/macos-arm64_x86_64/"
)
if os.path.isfile(os.path.join(lib_name, "libMoltenVK.a")):
ver_num = ver_comp
lib_name_out = lib_name
return os.path.join(os.path.join(dirname, ver_file), "MoltenVK/MoltenVK.xcframework/macos-arm64_x86_64/") return lib_name_out
def configure(env: "Environment"): def configure(env: "Environment"):
@ -262,6 +271,12 @@ def configure(env: "Environment"):
mvk_list = [get_mvk_sdk_path(), "/opt/homebrew/lib", "/usr/local/homebrew/lib", "/opt/local/lib"] mvk_list = [get_mvk_sdk_path(), "/opt/homebrew/lib", "/usr/local/homebrew/lib", "/opt/local/lib"]
if env["vulkan_sdk_path"] != "": if env["vulkan_sdk_path"] != "":
mvk_list.insert(0, os.path.expanduser(env["vulkan_sdk_path"])) mvk_list.insert(0, os.path.expanduser(env["vulkan_sdk_path"]))
mvk_list.insert(
0,
os.path.join(
os.path.expanduser(env["vulkan_sdk_path"]), "macOS/lib/MoltenVK.xcframework/macos-arm64_x86_64/"
),
)
mvk_list.insert( mvk_list.insert(
0, 0,
os.path.join( os.path.join(