forked from OSchip/llvm-project
[cmake] Fix LLDB_CODESIGN_IDENTITY logic.
Summary: Consolidate LLDB_CODESIGN_IDENTITY logic in one place and use SKIP_DEBUGSERVER, which can be set independently, to control codesigning targets. Currently, running cmake the first time in a clean directory, without passing -DLLDB_CODESIGN_IDENTITY='', fails. However, subsequent runs succeed. That's because LLDB_CODESIGN_IDENTITY gets added to the CACHE after the initial test. To fix that, the default value must be set before it's tested. Here's the error produced on the first run: CMake Error at tools/lldb/tools/debugserver/source/CMakeLists.txt:215 (add_custom_command): No TARGET 'debugserver' has been created in this directory. Differential Revision: https://reviews.llvm.org/D43432 llvm-svn: 325442
This commit is contained in:
parent
2cd14e16a6
commit
d8a6b90e83
|
@ -57,21 +57,6 @@ if (NOT LLDB_DISABLE_PYTHON)
|
|||
add_subdirectory(scripts)
|
||||
endif ()
|
||||
|
||||
if(CMAKE_HOST_APPLE)
|
||||
if(LLDB_CODESIGN_IDENTITY)
|
||||
set(DEBUGSERVER_PATH $<TARGET_FILE:debugserver>)
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND xcode-select -p
|
||||
OUTPUT_VARIABLE XCODE_DEV_DIR)
|
||||
string(STRIP ${XCODE_DEV_DIR} XCODE_DEV_DIR)
|
||||
set(DEBUGSERVER_PATH
|
||||
"${XCODE_DEV_DIR}/../SharedFrameworks/LLDB.framework/Resources/debugserver")
|
||||
set(SKIP_DEBUGSERVER True)
|
||||
endif()
|
||||
message(STATUS "Path to the lldb debugserver: ${DEBUGSERVER_PATH}")
|
||||
endif()
|
||||
|
||||
add_subdirectory(source)
|
||||
add_subdirectory(tools)
|
||||
|
||||
|
|
|
@ -95,6 +95,22 @@ set(lldbDebugserverCommonSources
|
|||
add_library(lldbDebugserverCommon ${lldbDebugserverCommonSources})
|
||||
|
||||
|
||||
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 "")
|
||||
set(DEBUGSERVER_PATH $<TARGET_FILE:debugserver>)
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND xcode-select -p
|
||||
OUTPUT_VARIABLE XCODE_DEV_DIR)
|
||||
string(STRIP ${XCODE_DEV_DIR} XCODE_DEV_DIR)
|
||||
set(DEBUGSERVER_PATH
|
||||
"${XCODE_DEV_DIR}/../SharedFrameworks/LLDB.framework/Resources/debugserver")
|
||||
set(SKIP_DEBUGSERVER True)
|
||||
endif()
|
||||
message(STATUS "Path to the lldb debugserver: ${DEBUGSERVER_PATH}")
|
||||
|
||||
if (APPLE)
|
||||
if(IOS)
|
||||
find_library(BACKBOARD_LIBRARY BackBoardServices
|
||||
|
@ -187,15 +203,13 @@ if(IOS)
|
|||
set(entitlements_xml ${CMAKE_CURRENT_SOURCE_DIR}/debugserver-entitlements.plist)
|
||||
endif()
|
||||
|
||||
set(LLDB_CODESIGN_IDENTITY "lldb_codesign"
|
||||
CACHE STRING "Identity used for code signing. Set to empty string to skip the signing step.")
|
||||
set(LLDB_USE_ENTITLEMENTS_Default On)
|
||||
if("${LLDB_CODESIGN_IDENTITY}" STREQUAL "lldb_codesign")
|
||||
set(LLDB_USE_ENTITLEMENTS_Default Off)
|
||||
endif()
|
||||
option(LLDB_USE_ENTITLEMENTS "Use entitlements when codesigning (Defaults Off when using lldb_codesign identity, otherwise On)" ${LLDB_USE_ENTITLEMENTS_Default})
|
||||
|
||||
if ("${LLDB_CODESIGN_IDENTITY}" STREQUAL "")
|
||||
if (SKIP_DEBUGSERVER)
|
||||
if (CMAKE_HOST_APPLE)
|
||||
# If we haven't built a signed debugserver, copy the one from the system.
|
||||
add_custom_target(debugserver
|
||||
|
|
Loading…
Reference in New Issue