2020-08-01 03:11:20 +08:00
|
|
|
# Code signing ID on Mac.
|
2020-04-29 01:34:06 +08:00
|
|
|
# If this is falsey, codesigning is disabled.
|
2020-08-01 03:11:20 +08:00
|
|
|
# '-' is ad-hoc codesign.
|
|
|
|
set(MAC_CODESIGN_ID "" CACHE STRING "Mac code-signing identity")
|
2020-03-01 07:36:54 +08:00
|
|
|
|
|
|
|
# Whether to inject the "get-task-allow" entitlement, which permits debugging
|
|
|
|
# on the Mac.
|
2020-03-15 07:11:35 +08:00
|
|
|
set(MAC_INJECT_GET_TASK_ALLOW ON CACHE BOOL "Inject get-task-allow on Mac")
|
2020-03-01 07:36:54 +08:00
|
|
|
|
2020-09-28 02:35:16 +08:00
|
|
|
# When building a Mac build, it is common for fish to link against a
|
|
|
|
# pcre2 built for the host platform (e.g. macOS 10.15) while fish wants
|
2022-01-04 00:08:41 +08:00
|
|
|
# to link for macOS 10.9. This warning would be of interest for releases,
|
2020-09-28 02:35:16 +08:00
|
|
|
# but is just noise for daily development. Unfortunately it has no flag
|
|
|
|
# of its own, so suppress all linker warnings in debug builds.
|
2022-01-04 00:08:41 +08:00
|
|
|
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -w")
|
2020-09-28 02:35:16 +08:00
|
|
|
|
2020-03-15 07:11:35 +08:00
|
|
|
function(CODESIGN_ON_MAC target)
|
2020-04-29 01:34:06 +08:00
|
|
|
if((APPLE) AND (MAC_CODESIGN_ID))
|
2020-03-22 18:21:29 +08:00
|
|
|
execute_process(COMMAND sw_vers "-productVersion" OUTPUT_VARIABLE OSX_VERSION)
|
2020-03-15 07:11:35 +08:00
|
|
|
if(MAC_INJECT_GET_TASK_ALLOW)
|
|
|
|
set(ENTITLEMENTS "--entitlements" "${CMAKE_SOURCE_DIR}/osx/fish_debug.entitlements")
|
|
|
|
else()
|
|
|
|
set(ENTITLEMENTS "")
|
|
|
|
endif(MAC_INJECT_GET_TASK_ALLOW)
|
2020-03-22 18:21:29 +08:00
|
|
|
if(OSX_VERSION VERSION_LESS "10.13.6")
|
|
|
|
# `-options runtime` is only available in OS X from 10.13.6 and up
|
|
|
|
add_custom_command(
|
|
|
|
TARGET ${target}
|
|
|
|
POST_BUILD
|
|
|
|
COMMAND codesign --force --deep ${ENTITLEMENTS} --sign "${MAC_CODESIGN_ID}" $<TARGET_FILE:${target}>
|
|
|
|
VERBATIM
|
|
|
|
)
|
|
|
|
else()
|
|
|
|
add_custom_command(
|
|
|
|
TARGET ${target}
|
|
|
|
POST_BUILD
|
|
|
|
COMMAND codesign --force --deep --options runtime ${ENTITLEMENTS} --sign "${MAC_CODESIGN_ID}" $<TARGET_FILE:${target}>
|
|
|
|
VERBATIM
|
|
|
|
)
|
|
|
|
endif()
|
2020-03-15 07:11:35 +08:00
|
|
|
endif()
|
|
|
|
endfunction(CODESIGN_ON_MAC target)
|