mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-28 00:15:06 +00:00
52501b7b65
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.
20 lines
1.2 KiB
CMake
20 lines
1.2 KiB
CMake
# 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) |