vita3k: Fix Discord SDK library linking for macOS architectures

Support x86_64, arm64, and universal builds by selecting the correct
Discord SDK dylib path based on the target architecture.
This commit is contained in:
Seungyun Lee
2026-01-12 17:27:43 +09:00
committed by Zangetsu
parent 74276ce7ae
commit 83e556d210
2 changed files with 14 additions and 2 deletions
+5 -1
View File
@@ -181,8 +181,12 @@ if(USE_DISCORD_RICH_PRESENCE)
if(APPLE)
if(ARCHITECTURE STREQUAL "x86_64")
target_link_libraries(discord-rpc PUBLIC "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/x86_64/discord_game_sdk.dylib")
else()
elseif(ARCHITECTURE STREQUAL "arm64")
target_link_libraries(discord-rpc PUBLIC "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/aarch64/discord_game_sdk.dylib")
else()
execute_process(COMMAND lipo -create -output discord_game_sdk.dylib x86_64/discord_game_sdk.dylib aarch64/discord_game_sdk.dylib
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib")
target_link_libraries(discord-rpc PUBLIC "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/discord_game_sdk.dylib")
endif()
elseif(WIN32)
target_link_libraries(discord-rpc PUBLIC "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/x86_64/discord_game_sdk.dll.lib")
+9 -1
View File
@@ -218,10 +218,18 @@ if(APPLE)
endif()
if(USE_DISCORD_RICH_PRESENCE)
if(ARCHITECTURE STREQUAL "x86_64")
set(discord_dylib "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/x86_64/discord_game_sdk.dylib")
elseif(ARCHITECTURE STREQUAL "arm64")
set(discord_dylib "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/aarch64/discord_game_sdk.dylib")
else() # macos universal build
set(discord_dylib "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/discord_game_sdk.dylib")
endif()
add_custom_command(
TARGET vita3k
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_BINARY_DIR}/external/discord_game_sdk/lib/x86_64/discord_game_sdk.dylib" "$<TARGET_FILE_DIR:vita3k>/../Resources")
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${discord_dylib}" "$<TARGET_FILE_DIR:vita3k>/../Resources")
endif()
set_target_properties(vita3k PROPERTIES LINK_FLAGS "-rpath @loader_path/../Frameworks/ -rpath @loader_path/../Resources/ -ld64")
target_sources(vita3k PRIVATE Vita3K.icns)