[Lldb-commits] [PATCH] D55116: [CMake] llvm_codesign workaround for Xcode double-signing errors
Phabricator via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Dec 13 10:54:52 PST 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL349070: [CMake] llvm_codesign workaround for Xcode double-signing errors (authored by stefan.graenitz, committed by ).
Herald added a subscriber: michaelplatings.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55116/new/
https://reviews.llvm.org/D55116
Files:
llvm/trunk/cmake/modules/AddLLVM.cmake
Index: llvm/trunk/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm/trunk/cmake/modules/AddLLVM.cmake
+++ llvm/trunk/cmake/modules/AddLLVM.cmake
@@ -584,7 +584,7 @@
if(ARG_SHARED OR ARG_MODULE)
llvm_externalize_debuginfo(${name})
- llvm_codesign(TARGET ${name})
+ llvm_codesign(${name})
endif()
endfunction()
@@ -796,7 +796,7 @@
target_link_libraries(${name} PRIVATE ${LLVM_PTHREAD_LIB})
endif()
- llvm_codesign(TARGET ${name} ENTITLEMENTS ${ARG_ENTITLEMENTS})
+ llvm_codesign(${name} ENTITLEMENTS ${ARG_ENTITLEMENTS})
endmacro(add_llvm_executable name)
function(export_executable_symbols target)
@@ -1635,13 +1635,9 @@
endif()
endfunction()
-# Usage: llvm_codesign(TARGET name [ENTITLEMENTS file])
-#
-# Code-sign the given TARGET with the global LLVM_CODESIGNING_IDENTITY or skip
-# if undefined. Customize capabilities by passing a file path to ENTITLEMENTS.
-#
-function(llvm_codesign)
- cmake_parse_arguments(ARG "" "TARGET;ENTITLEMENTS" "" ${ARGN})
+# Usage: llvm_codesign(name [ENTITLEMENTS file])
+function(llvm_codesign name)
+ cmake_parse_arguments(ARG "" "ENTITLEMENTS" "" ${ARGN})
if(NOT LLVM_CODESIGNING_IDENTITY)
return()
@@ -1659,15 +1655,20 @@
)
endif()
if(DEFINED ARG_ENTITLEMENTS)
- set(PASS_ENTITLEMENTS --entitlements ${ARG_ENTITLEMENTS})
+ set(pass_entitlements --entitlements ${ARG_ENTITLEMENTS})
+ endif()
+ if(CMAKE_GENERATOR STREQUAL "Xcode")
+ # Avoid double-signing error: Since output overwrites input, Xcode runs
+ # the post-build rule even if the actual build-step was skipped.
+ set(pass_force --force)
endif()
add_custom_command(
- TARGET ${ARG_TARGET} POST_BUILD
+ TARGET ${name} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E
env CODESIGN_ALLOCATE=${CMAKE_CODESIGN_ALLOCATE}
${CMAKE_CODESIGN} -s ${LLVM_CODESIGNING_IDENTITY}
- ${PASS_ENTITLEMENTS} $<TARGET_FILE:${ARG_TARGET}>
+ ${pass_entitlements} ${pass_force} $<TARGET_FILE:${name}>
)
endif()
endfunction()
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55116.178095.patch
Type: text/x-patch
Size: 2141 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20181213/f0fbc2c8/attachment.bin>
More information about the lldb-commits
mailing list