diff --git a/cmake_modules/VCMIUtils.cmake b/cmake_modules/VCMIUtils.cmake index 4f4fedf29..f32c3eaa4 100644 --- a/cmake_modules/VCMIUtils.cmake +++ b/cmake_modules/VCMIUtils.cmake @@ -149,7 +149,10 @@ function(vcmi_deploy_qt deployQtToolName deployQtOptions) find_program(TOOL_DEPLOYQT NAMES ${deployQtToolName} PATHS "${qtBinDir}") if(TOOL_DEPLOYQT) install(CODE " - execute_process(COMMAND \"${TOOL_DEPLOYQT}\" ${deployQtOptions} -verbose=2) + execute_process( + COMMAND \"${TOOL_DEPLOYQT}\" ${deployQtOptions} -verbose=2 + COMMAND_ERROR_IS_FATAL ANY + ) ") else() message(WARNING "${deployQtToolName} not found, running cpack would result in broken package") diff --git a/osx/CMakeLists.txt b/osx/CMakeLists.txt index 80095eee8..7320c4d7d 100644 --- a/osx/CMakeLists.txt +++ b/osx/CMakeLists.txt @@ -3,11 +3,14 @@ if(MACOS) set(bundleDir "\${CMAKE_INSTALL_PREFIX}/${APP_BUNDLE_DIR}") set(bundleContentsDir "${bundleDir}/Contents") + set(executablesDir "${bundleContentsDir}/MacOS") - if(ENABLE_LAUNCHER OR ENABLE_EDITOR) - # note: cross-compiled Qt 5 builds macdeployqt for target platform instead of host - vcmi_deploy_qt(macdeployqt "\"${bundleDir}\"") + set(macdeployqtParams "\"${bundleDir}\"") + if(ENABLE_EDITOR) + string(APPEND macdeployqtParams " \"-executable=${executablesDir}/vcmieditor\"") endif() + # note: cross-compiled Qt 5 builds macdeployqt for target platform instead of host + vcmi_deploy_qt(macdeployqt "${macdeployqtParams}") # perform ad-hoc codesigning # Intel Macs don't need it @@ -29,11 +32,11 @@ if(MACOS) set(codesignCommandWithEntitlements "${codesignCommand} --entitlements \"${CMAKE_SOURCE_DIR}/osx/entitlements.plist\"") install(CODE " execute_process(COMMAND - ${codesignCommand} \"${bundleContentsDir}/MacOS/vcmibuilder\" + ${codesignCommand} \"${executablesDir}/vcmibuilder\" ) foreach(executable ${executablesToSign}) execute_process(COMMAND - ${codesignCommandWithEntitlements} --identifier eu.vcmi.\${executable} \"${bundleContentsDir}/MacOS/\${executable}\" + ${codesignCommandWithEntitlements} --identifier eu.vcmi.\${executable} \"${executablesDir}/\${executable}\" ) endforeach() ")