Move update.sh to Cemu.app/Contents/Resources, move update.sh chmod to CMake, use proper CMake commands for rpaths

This commit is contained in:
emiyl 2026-04-19 13:18:35 +01:00
parent b9a270a3f9
commit d37d25b086
2 changed files with 31 additions and 7 deletions

View File

@ -282,7 +282,6 @@ jobs:
mv bin/Cemu_release.app bin/Cemu_app/Cemu.app
mv bin/Cemu_app/Cemu.app/Contents/MacOS/Cemu_release bin/Cemu_app/Cemu.app/Contents/MacOS/Cemu
sed -i '' 's/Cemu_release/Cemu/g' bin/Cemu_app/Cemu.app/Contents/Info.plist
chmod a+x bin/Cemu_app/Cemu.app/Contents/MacOS/{Cemu,update.sh}
codesign --entitlements ${{github.workspace}}/src/resource/cemu.macos.entitlements --force --deep --preserve-metadata=entitlements,requirements,flags,runtime --sign - --timestamp --options runtime bin/Cemu_app/Cemu.app/Contents/MacOS/Cemu
ln -s /Applications bin/Cemu_app/Applications
hdiutil create ./bin/tmp.dmg -ov -volname "Cemu" -fs HFS+ -srcfolder "./bin/Cemu_app"

View File

@ -79,6 +79,12 @@ if(WIN32)
)
endif()
if(APPLE AND CMAKE_GENERATOR STREQUAL "Xcode")
set_target_properties(CemuBin PROPERTIES
XCODE_ATTRIBUTE_ENABLE_DEBUG_DYLIB[variant=Debug] "YES"
)
endif()
string(TIMESTAMP CURRENT_YEAR "%Y" UTC)
set_property(TARGET CemuBin PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
@ -127,12 +133,31 @@ if (MACOS_BUNDLE)
message(FATAL_ERROR "failed to find libMoltenVK.dylib")
endif ()
add_custom_command (TARGET CemuBin POST_BUILD
COMMAND ${CMAKE_COMMAND} ARGS -E copy "${MOLTENVK_PATH}" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/Frameworks/libMoltenVK.dylib"
COMMAND ${CMAKE_COMMAND} ARGS -E copy "${LIBUSB_PATH}" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/Frameworks/libusb-1.0.0.dylib"
COMMAND ${CMAKE_COMMAND} ARGS -E copy "${CMAKE_SOURCE_DIR}/src/resource/update.sh" "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/update.sh"
COMMAND bash -c "install_name_tool -add_rpath @executable_path/../Frameworks ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME}"
COMMAND install_name_tool -change @rpath/libusb-1.0.0.dylib @executable_path/../Frameworks/libusb-1.0.0.dylib ${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app/Contents/MacOS/${OUTPUT_NAME})
set(APP_BUNDLE_DIR "${CMAKE_SOURCE_DIR}/bin/${OUTPUT_NAME}.app")
set(FRAMEWORKS_DIR "${APP_BUNDLE_DIR}/Contents/Frameworks")
set(RESOURCES_DIR "${APP_BUNDLE_DIR}/Contents/Resources")
add_custom_command(TARGET CemuBin POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${MOLTENVK_PATH}"
"${FRAMEWORKS_DIR}/libMoltenVK.dylib"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${LIBUSB_PATH}"
"${FRAMEWORKS_DIR}/libusb-1.0.0.dylib"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_SOURCE_DIR}/src/resource/update.sh"
"${RESOURCES_DIR}/update.sh"
COMMAND ${CMAKE_COMMAND} -E chmod +x "${RESOURCES_DIR}/update.sh"
COMMAND install_name_tool
-change @rpath/libusb-1.0.0.dylib
@executable_path/../Frameworks/libusb-1.0.0.dylib
"$<TARGET_FILE:CemuBin>"
)
set_target_properties(CemuBin PROPERTIES
BUILD_WITH_INSTALL_RPATH TRUE
INSTALL_RPATH "@executable_path/../Frameworks"
)
else()
if(APPLE)
find_library(MOLTENVK_LIBRARY