mirror of https://github.com/OpenMW/openmw.git
Re-sign Mac Applications before creating install package
On Apple Silicon, the changes to linking paths done to "relativise" paths in App bundles invalidates the code signature, so we need to recalculate the signatures *after* the path changes have been performed but before the install package is created. This depends on a new CMake feature introduced in 3.19.make_linux_ci_do_zoomies
parent
1f5277349c
commit
52501b7b65
@ -0,0 +1,20 @@
|
||||
# This script re-signs OpenMW.app and OpenMW-CS.app after CPack packages them. This is necessary because CPack modifies
|
||||
# the library references used by OpenMW to App relative paths, invalidating the code signature.
|
||||
|
||||
# Obviously, we only need to run this on Apple targets.
|
||||
if (APPLE)
|
||||
set(OPENMW_APP "OpenMW")
|
||||
set(OPENMW_CS_APP "OpenMW-CS")
|
||||
|
||||
set(APPLICATIONS "${OPENMW_APP}" "${OPENMW_CS_APP}")
|
||||
foreach(app_name IN LISTS APPLICATIONS)
|
||||
set(FULL_APP_PATH "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_IN_ONE/${app_name}.app")
|
||||
message(STATUS "Re-signing ${app_name}.app")
|
||||
# Apple's codesign utility does not like directories with periods (.) in their names, so we'll remove it and
|
||||
# create a symlink using the original name, which codesign is fine with.
|
||||
file(GLOB OSG_PLUGINS_DIR "${FULL_APP_PATH}/Contents/PlugIns/osgPlugins*")
|
||||
file(RENAME "${OSG_PLUGINS_DIR}" "${FULL_APP_PATH}/Contents/PlugIns/osgPlugins")
|
||||
execute_process(COMMAND "ln" "-s" "${FULL_APP_PATH}/Contents/PlugIns/osgPlugins" "${OSG_PLUGINS_DIR}")
|
||||
execute_process(COMMAND "codesign" "--force" "--deep" "-s" "-" "${FULL_APP_PATH}")
|
||||
endforeach(app_name)
|
||||
endif (APPLE)
|
Loading…
Reference in New Issue