mirror of
https://github.com/azahar-emu/azahar.git
synced 2026-06-06 02:33:44 -04:00
[cmake] Fix MoltenVK fetch order/library conflicts
Rather than dealing with `find_library` shenanigans, just set the library path directly (when using bundled MoltenVK). System MoltenVK solely uses `find_library`. Avoids cache nonsense that can cause system/bundled versions to get mixed up, and overall makes the system/bundled mvk handling a lot more consistent ``` cmake -S . -B build -DUSE_SYSTEM_MOLTENVK=ON -- Using MoltenVK at /opt/homebrew/lib/libMoltenVK.dylib. cmake -S . -B build -DUSE_SYSTEM_MOLTENVK=OFF -- Using MoltenVK at /Users/crueter/code/azahar/build/externals/MoltenVK/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib. cmake -S . -B build -DUSE_SYSTEM_MOLTENVK=ON -- Using MoltenVK at /opt/homebrew/lib/libMoltenVK.dylib. ``` Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
parent
c03248f158
commit
caeca07b5c
2 changed files with 12 additions and 8 deletions
|
|
@ -411,13 +411,15 @@ if (APPLE)
|
|||
endif()
|
||||
find_library(AVFOUNDATION_LIBRARY AVFoundation REQUIRED)
|
||||
find_library(IOSURFACE_LIBRARY IOSurface REQUIRED)
|
||||
set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${AVFOUNDATION_LIBRARY} ${IOSURFACE_LIBRARY} ${MOLTENVK_LIBRARY})
|
||||
set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${AVFOUNDATION_LIBRARY} ${IOSURFACE_LIBRARY})
|
||||
|
||||
if (ENABLE_VULKAN AND NOT ENABLE_LIBRETRO)
|
||||
if (NOT USE_SYSTEM_MOLTENVK)
|
||||
if (USE_SYSTEM_MOLTENVK)
|
||||
find_library(MOLTENVK_LIBRARY MoltenVK REQUIRED)
|
||||
else()
|
||||
download_moltenvk()
|
||||
endif()
|
||||
find_library(MOLTENVK_LIBRARY MoltenVK REQUIRED)
|
||||
|
||||
message(STATUS "Using MoltenVK at ${MOLTENVK_LIBRARY}.")
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} ${MOLTENVK_LIBRARY})
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -172,9 +172,11 @@ endfunction()
|
|||
|
||||
function(download_moltenvk)
|
||||
if (IOS)
|
||||
set(MOLTENVK_PLATFORM "static/MoltenVK.xcframework/ios-arm64")
|
||||
set(platform "static/MoltenVK.xcframework/ios-arm64")
|
||||
set(lib libMoltenVK.a)
|
||||
else()
|
||||
set(MOLTENVK_PLATFORM "dynamic/dylib/macOS")
|
||||
set(platform "dynamic/dylib/macOS")
|
||||
set(lib libMoltenVK.dylib)
|
||||
endif()
|
||||
|
||||
set(MOLTENVK_DIR "${CMAKE_BINARY_DIR}/externals/MoltenVK")
|
||||
|
|
@ -189,9 +191,9 @@ function(download_moltenvk)
|
|||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals")
|
||||
endif()
|
||||
|
||||
# Add the MoltenVK library path to the prefix so find_library can locate it.
|
||||
list(APPEND CMAKE_PREFIX_PATH "${MOLTENVK_DIR}/MoltenVK/${MOLTENVK_PLATFORM}")
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
|
||||
# Forcefully set the MoltenVK library in cache so find_library calls don't override it
|
||||
set(MOLTENVK_LIBRARY "${MOLTENVK_DIR}/MoltenVK/${platform}/${lib}")
|
||||
return(PROPAGATE MOLTENVK_LIBRARY)
|
||||
endfunction()
|
||||
|
||||
function(get_external_prefix lib_name prefix_var)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue