Author: labath
Date: Thu May 26 03:38:10 2016
New Revision: 270832

URL: http://llvm.org/viewvc/llvm-project?rev=270832&view=rev
Log:
[cmake] Add ability to customize (and skip) debugserver codesign

Summary:
This adds the ability to customize the debugserver codesign process via cmake 
cache variable. The
user can set the codesign indentity (with the default being the customary 
lldb_codesign), and if
the identity is set to a empty string, the codesign step is skipped completely.

We needed the last feature to enable building lldb on buildservers which do not 
have the right
certificates installed.

Reviewers: sas, tberghammer

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D20623

Modified:
    lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt

Modified: lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt?rev=270832&r1=270831&r2=270832&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt (original)
+++ lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt Thu May 26 
03:38:10 2016
@@ -59,29 +59,31 @@ set_source_files_properties(
 
 target_link_libraries(debugserver ${DEBUGSERVER_USED_LIBS})
 
-# Sign the debugserver binary
-set (CODESIGN_IDENTITY lldb_codesign)
-execute_process(
-  COMMAND xcrun -f codesign_allocate
-  OUTPUT_STRIP_TRAILING_WHITESPACE
-  OUTPUT_VARIABLE CODESIGN_ALLOCATE
-  )
-# Older cmake versions don't support "-E env".
-if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 3.2)
-  add_custom_command(TARGET debugserver
-    POST_BUILD
-    # Note: --entitlements option removed, as it causes errors when debugging.
-    # was: COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign 
--entitlements ${CMAKE_CURRENT_SOURCE_DIR}/../debugserver-entitlements.plist 
--force --sign ${CODESIGN_IDENTITY} debugserver
-    COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --force --sign 
${CODESIGN_IDENTITY} debugserver
-    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
-  )
-else()
-  add_custom_command(TARGET debugserver
-    POST_BUILD
-    # Note: --entitlements option removed (see comment above).
-    COMMAND ${CMAKE_COMMAND} -E env CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} 
codesign --force --sign ${CODESIGN_IDENTITY} debugserver
-    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
-  )
+set(LLDB_CODESIGN_IDENTITY "lldb_codesign"
+  CACHE STRING "Identity used for code signing. Set to empty string to skip 
the signing step.")
+if (NOT ("${LLDB_CODESIGN_IDENTITY}" STREQUAL ""))
+  execute_process(
+    COMMAND xcrun -f codesign_allocate
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    OUTPUT_VARIABLE CODESIGN_ALLOCATE
+    )
+  # Older cmake versions don't support "-E env".
+  if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 3.2)
+    add_custom_command(TARGET debugserver
+      POST_BUILD
+      # Note: --entitlements option removed, as it causes errors when 
debugging.
+      # was: COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign 
--entitlements ${CMAKE_CURRENT_SOURCE_DIR}/../debugserver-entitlements.plist 
--force --sign ${LLDB_CODESIGN_IDENTITY} debugserver
+      COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --force --sign 
${LLDB_CODESIGN_IDENTITY} debugserver
+      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+    )
+  else()
+    add_custom_command(TARGET debugserver
+      POST_BUILD
+      # Note: --entitlements option removed (see comment above).
+      COMMAND ${CMAKE_COMMAND} -E env CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} 
codesign --force --sign ${LLDB_CODESIGN_IDENTITY} debugserver
+      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+    )
+  endif()
 endif()
 
 install(TARGETS debugserver


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to