summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Tests/RunCMake/GoogleTest/xcode_sign_adhoc.cmake14
-rw-r--r--Tests/RunCMake/ObjectLibrary/LinkObjLHSShared.cmake12
2 files changed, 19 insertions, 7 deletions
diff --git a/Tests/RunCMake/GoogleTest/xcode_sign_adhoc.cmake b/Tests/RunCMake/GoogleTest/xcode_sign_adhoc.cmake
index d2dc530..571e4aa 100644
--- a/Tests/RunCMake/GoogleTest/xcode_sign_adhoc.cmake
+++ b/Tests/RunCMake/GoogleTest/xcode_sign_adhoc.cmake
@@ -1,8 +1,14 @@
function(xcode_sign_adhoc target)
if(CMAKE_GENERATOR STREQUAL "Xcode" AND
- "${CMAKE_SYSTEM_NAME};${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "Darwin;arm64")
- # Xcode runs POST_BUILD before signing, so let the linker use ad-hoc signing.
- # See CMake Issue 21845.
- target_link_options(${target} PRIVATE LINKER:-adhoc_codesign)
+ "${CMAKE_SYSTEM_NAME};${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "Darwin;arm64")
+ if(XCODE_VERSION VERSION_GREATER_EQUAL 15)
+ # Xcode 15+ enforces '-Xlinker -no_adhoc_codesign' after user flags,
+ # so we cannot convince the linker to add an adhoc signature.
+ add_custom_command(TARGET ${target} POST_BUILD COMMAND codesign --sign - --force "$<TARGET_FILE:${target}>")
+ else()
+ # Xcode runs POST_BUILD before signing, so let the linker use ad-hoc signing.
+ # See CMake Issue 21845.
+ target_link_options(${target} PRIVATE LINKER:-adhoc_codesign)
+ endif()
endif()
endfunction()
diff --git a/Tests/RunCMake/ObjectLibrary/LinkObjLHSShared.cmake b/Tests/RunCMake/ObjectLibrary/LinkObjLHSShared.cmake
index 3d60556..a1fa7b3 100644
--- a/Tests/RunCMake/ObjectLibrary/LinkObjLHSShared.cmake
+++ b/Tests/RunCMake/ObjectLibrary/LinkObjLHSShared.cmake
@@ -14,8 +14,14 @@ target_link_libraries(LinkObjLHSShared AnObjLib)
# Verify that our dependency on OtherLib generated its versioning symlinks.
if(CMAKE_GENERATOR STREQUAL "Xcode" AND
"${CMAKE_SYSTEM_NAME};${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "Darwin;arm64")
- # Xcode runs POST_BUILD before signing, so let the linker use ad-hoc signing.
- # See CMake Issue 21845.
- target_link_options(LinkObjLHSShared PRIVATE LINKER:-adhoc_codesign)
+ if(XCODE_VERSION VERSION_GREATER_EQUAL 15)
+ # Xcode 15+ enforces '-Xlinker -no_adhoc_codesign' after user flags,
+ # so we cannot convince the linker to add an adhoc signature.
+ add_custom_command(TARGET LinkObjLHSShared POST_BUILD COMMAND codesign --sign - --force "$<TARGET_FILE:LinkObjLHSShared>")
+ else()
+ # Xcode runs POST_BUILD before signing, so let the linker use ad-hoc signing.
+ # See CMake Issue 21845.
+ target_link_options(LinkObjLHSShared PRIVATE LINKER:-adhoc_codesign)
+ endif()
endif()
add_custom_command(TARGET LinkObjLHSShared POST_BUILD COMMAND LinkObjLHSShared)