Author: dhinton Date: Sat Feb 17 11:17:21 2018 New Revision: 325442 URL: http://llvm.org/viewvc/llvm-project?rev=325442&view=rev Log: [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 Modified: lldb/trunk/CMakeLists.txt lldb/trunk/tools/debugserver/source/CMakeLists.txt Modified: lldb/trunk/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=325442&r1=325441&r2=325442&view=diff ============================================================================== --- lldb/trunk/CMakeLists.txt (original) +++ lldb/trunk/CMakeLists.txt Sat Feb 17 11:17:21 2018 @@ -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) Modified: lldb/trunk/tools/debugserver/source/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/CMakeLists.txt?rev=325442&r1=325441&r2=325442&view=diff ============================================================================== --- lldb/trunk/tools/debugserver/source/CMakeLists.txt (original) +++ lldb/trunk/tools/debugserver/source/CMakeLists.txt Sat Feb 17 11:17:21 2018 @@ -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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits