diff --git a/Source/Core/CMakeLists.txt b/Source/Core/CMakeLists.txt index 576e3eec62..b1c5a3ab17 100644 --- a/Source/Core/CMakeLists.txt +++ b/Source/Core/CMakeLists.txt @@ -30,3 +30,59 @@ endif() if (WIN32 AND ENABLE_AUTOUPDATE) add_subdirectory(WinUpdater) endif() + +if (APPLE AND ENABLE_QT) + set(DOLPHIN_MAC_BUNDLE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Dolphin.app") + + add_custom_target(build_final_bundle ALL + COMMAND ${CMAKE_COMMAND} -E remove_directory + ${DOLPHIN_MAC_BUNDLE} + + COMMAND cp -R + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DolphinQt.app + ${DOLPHIN_MAC_BUNDLE} + + # HACK: The Updater does not support setting the executable bit on new files, + # so don't use the new executable name, and instead continue to use "Dolphin". + COMMAND ${CMAKE_COMMAND} -E rename + ${DOLPHIN_MAC_BUNDLE}/Contents/MacOS/DolphinQt + ${DOLPHIN_MAC_BUNDLE}/Contents/MacOS/Dolphin + + COMMAND plutil + -replace CFBundleExecutable -string Dolphin + ${DOLPHIN_MAC_BUNDLE}/Contents/Info.plist + + DEPENDS dolphin-emu) + + if (ENABLE_AUTOUPDATE) + add_dependencies(build_final_bundle MacUpdater) + + add_custom_command(TARGET build_final_bundle + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory + "${DOLPHIN_MAC_BUNDLE}/Contents/Helpers" + + COMMAND cp -R + "$" + "${DOLPHIN_MAC_BUNDLE}/Contents/Helpers/Dolphin Updater.app") + + if (MACOS_CODE_SIGNING) + add_custom_command(TARGET build_final_bundle + POST_BUILD + COMMAND "${CMAKE_SOURCE_DIR}/Tools/mac-codesign.sh" + "-t" + "${MACOS_CODE_SIGNING_IDENTITY}" + "${DOLPHIN_MAC_BUNDLE}/Contents/Helpers/Dolphin Updater.app") + endif() + endif() + + if (MACOS_CODE_SIGNING) + add_custom_command(TARGET build_final_bundle + POST_BUILD + COMMAND "${CMAKE_SOURCE_DIR}/Tools/mac-codesign.sh" + "-t" + "-e" "${CMAKE_SOURCE_DIR}/Source/Core/DolphinQt/DolphinEmu$<$:Debug>.entitlements" + "${MACOS_CODE_SIGNING_IDENTITY}" + "${DOLPHIN_MAC_BUNDLE}") + endif() +endif()