1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-31 23:45:35 +00:00
openmw/cmake/SignMacApplications.cmake
AnyOldName3 87eaa38cf7 Merge branch 're-sign-mac-applications' into 'master'
Re-sign Mac Applications before creating install package

See merge request OpenMW/openmw!2418

(cherry picked from commit 1dd392d33d)

52501b7b Re-sign Mac Applications before creating install package
e4f04390 Merge commit 'cd8b20439ec707574826679a8f851546c78e294e' into re-sign-mac-applications
71f6f950 Make Mac Plugins osgPlugins symlink relative
9f7e1324 Made CMake 3.19 requirement specific to macOS app packaging.
2022-09-22 07:50:39 +00:00

21 lines
No EOL
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" "osgPlugins" "${OSG_PLUGINS_DIR}"
WORKING_DIRECTORY "${FULL_APP_PATH}/Contents/PlugIns/")
execute_process(COMMAND "codesign" "--force" "--deep" "-s" "-" "${FULL_APP_PATH}")
endforeach(app_name)
endif (APPLE)