diff options
Diffstat (limited to 'tools/debugserver/source/CMakeLists.txt')
-rw-r--r-- | tools/debugserver/source/CMakeLists.txt | 310 |
1 files changed, 0 insertions, 310 deletions
diff --git a/tools/debugserver/source/CMakeLists.txt b/tools/debugserver/source/CMakeLists.txt deleted file mode 100644 index 860a0289d22c..000000000000 --- a/tools/debugserver/source/CMakeLists.txt +++ /dev/null @@ -1,310 +0,0 @@ -include(CheckCXXCompilerFlag) -include(CheckLibraryExists) -include_directories(${CMAKE_CURRENT_BINARY_DIR}/..) -include_directories(${LLDB_SOURCE_DIR}/source) -include_directories(MacOSX/DarwinLog) - -include_directories(MacOSX) - -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_SOURCE_DIR}/../resources/lldb-debugserver-Info.plist") - -check_cxx_compiler_flag("-Wno-gnu-zero-variadic-macro-arguments" - CXX_SUPPORTS_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS) -if (CXX_SUPPORTS_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-gnu-zero-variadic-macro-arguments") -endif () - -check_cxx_compiler_flag("-Wno-zero-length-array" - CXX_SUPPORTS_NO_ZERO_LENGTH_ARRAY) -if (CXX_SUPPORTS_NO_ZERO_LENGTH_ARRAY) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-zero-length-array") -endif () - -check_cxx_compiler_flag("-Wno-extended-offsetof" - CXX_SUPPORTS_NO_EXTENDED_OFFSETOF) -if (CXX_SUPPORTS_NO_EXTENDED_OFFSETOF) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-extended-offsetof") -endif () - -check_library_exists(compression compression_encode_buffer "" HAVE_LIBCOMPRESSION) - -add_subdirectory(MacOSX) - -set(generated_mach_interfaces - ${CMAKE_CURRENT_BINARY_DIR}/mach_exc.h - ${CMAKE_CURRENT_BINARY_DIR}/mach_excServer.c - ${CMAKE_CURRENT_BINARY_DIR}/mach_excUser.c - ) -add_custom_command(OUTPUT ${generated_mach_interfaces} - COMMAND mig ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs - ) - -set(DEBUGSERVER_VERS_GENERATED_FILE ${CMAKE_CURRENT_BINARY_DIR}/debugserver_vers.c) -set_source_files_properties(${DEBUGSERVER_VERS_GENERATED_FILE} PROPERTIES GENERATED 1) - -add_custom_command(OUTPUT ${DEBUGSERVER_VERS_GENERATED_FILE} - COMMAND ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl - ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj debugserver - > ${DEBUGSERVER_VERS_GENERATED_FILE} - DEPENDS ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl - ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj - ) - -set(lldbDebugserverCommonSources - DNBArch.cpp - DNBBreakpoint.cpp - DNB.cpp - DNBDataRef.cpp - DNBError.cpp - DNBLog.cpp - DNBRegisterInfo.cpp - DNBThreadResumeActions.cpp - JSON.cpp - StdStringExtractor.cpp - # JSON reader depends on the following LLDB-common files - ${LLDB_SOURCE_DIR}/source/Host/common/StringConvert.cpp - ${LLDB_SOURCE_DIR}/source/Host/common/SocketAddress.cpp - # end JSON reader dependencies - libdebugserver.cpp - PseudoTerminal.cpp - PThreadEvent.cpp - PThreadMutex.cpp - RNBContext.cpp - RNBRemote.cpp - RNBServices.cpp - RNBSocket.cpp - SysSignal.cpp - TTYState.cpp - - MacOSX/CFBundle.cpp - MacOSX/CFString.cpp - MacOSX/Genealogy.cpp - MacOSX/MachException.cpp - MacOSX/MachProcess.mm - MacOSX/MachTask.mm - MacOSX/MachThread.cpp - MacOSX/MachThreadList.cpp - MacOSX/MachVMMemory.cpp - MacOSX/MachVMRegion.cpp - MacOSX/OsLogger.cpp - ${generated_mach_interfaces} - ${DEBUGSERVER_VERS_GENERATED_FILE}) - -add_library(lldbDebugserverCommon ${lldbDebugserverCommonSources}) - -# LLDB-specific identity, currently used for code signing debugserver. -set(LLDB_CODESIGN_IDENTITY "" CACHE STRING - "Override code sign identity for debugserver and for use in tests; falls back to LLVM_CODESIGNING_IDENTITY if set or lldb_codesign otherwise (Darwin only)") - -# Determine which identity to use and store it in the separate cache entry. -# We will query it later for LLDB_TEST_COMMON_ARGS. -if(LLDB_CODESIGN_IDENTITY) - set(LLDB_CODESIGN_IDENTITY_USED ${LLDB_CODESIGN_IDENTITY} CACHE INTERNAL "" FORCE) -elseif(LLVM_CODESIGNING_IDENTITY) - set(LLDB_CODESIGN_IDENTITY_USED ${LLVM_CODESIGNING_IDENTITY} CACHE INTERNAL "" FORCE) -else() - set(LLDB_CODESIGN_IDENTITY_USED lldb_codesign CACHE INTERNAL "" FORCE) -endif() - -# Override locally, so the identity is used for targets created in this scope. -set(LLVM_CODESIGNING_IDENTITY ${LLDB_CODESIGN_IDENTITY_USED}) - -option(LLDB_NO_DEBUGSERVER "Disable the debugserver target" OFF) -option(LLDB_USE_SYSTEM_DEBUGSERVER "Use the system's debugserver instead of building it from source (Darwin only)." OFF) - -# Incompatible options -if(LLDB_NO_DEBUGSERVER AND LLDB_USE_SYSTEM_DEBUGSERVER) - message(FATAL_ERROR "Inconsistent options: LLDB_NO_DEBUGSERVER and LLDB_USE_SYSTEM_DEBUGSERVER") -endif() - -# Try to locate the system debugserver. -# Subsequent feasibility checks depend on it. -if(APPLE AND CMAKE_HOST_APPLE) - execute_process( - COMMAND xcode-select -p - OUTPUT_VARIABLE xcode_dev_dir) - string(STRIP ${xcode_dev_dir} xcode_dev_dir) - - set(debugserver_rel_path "LLDB.framework/Resources/debugserver") - set(debugserver_shared "${xcode_dev_dir}/../SharedFrameworks/${debugserver_rel_path}") - set(debugserver_private "${xcode_dev_dir}/Library/PrivateFrameworks/${debugserver_rel_path}") - - if(EXISTS ${debugserver_shared}) - set(system_debugserver ${debugserver_shared}) - elseif(EXISTS ${debugserver_private}) - set(system_debugserver ${debugserver_private}) - endif() -endif() - -# Handle unavailability -if(LLDB_USE_SYSTEM_DEBUGSERVER) - if(system_debugserver) - set(use_system_debugserver ON) - elseif(APPLE AND CMAKE_HOST_APPLE) - # Binary not found on system. Keep cached variable, to try again on reconfigure. - message(SEND_ERROR - "LLDB_USE_SYSTEM_DEBUGSERVER option set, but no debugserver found in:\ - ${debugserver_shared}\ - ${debugserver_private}") - else() - # Non-Apple target platform or non-Darwin host. Reset invalid cached variable. - message(WARNING "Reverting invalid option LLDB_USE_SYSTEM_DEBUGSERVER (Darwin only)") - set(LLDB_USE_SYSTEM_DEBUGSERVER OFF CACHE BOOL "" FORCE) - endif() -elseif(NOT LLDB_NO_DEBUGSERVER) - # Default case: on Darwin we need the right code signing ID. - # See lldb/docs/code-signing.txt for details. - if(CMAKE_HOST_APPLE AND NOT LLVM_CODESIGNING_IDENTITY STREQUAL "lldb_codesign") - set(problem "Cannot code sign debugserver with LLVM_CODESIGNING_IDENTITY '${LLVM_CODESIGNING_IDENTITY}'.") - set(advice "Pass -DLLDB_CODESIGN_IDENTITY=lldb_codesign to override the LLVM value for debugserver.") - if(system_debugserver) - set(effect "Will fall back to system's debugserver.") - set(use_system_debugserver ON) - else() - set(effect "debugserver will not be available.") - endif() - message(WARNING "${problem} ${effect} ${advice}") - else() - set(build_and_sign_debugserver ON) - endif() -endif() - -# TODO: We don't use the $<TARGET_FILE:debugserver> generator expression here, -# because the value of DEBUGSERVER_PATH is used to build LLDB_DOTEST_ARGS, -# which is used for configuring lldb-dotest.in, which does not have a generator -# step at the moment. -set(default_debugserver_path "${LLVM_RUNTIME_OUTPUT_INTDIR}/debugserver${CMAKE_EXECUTABLE_SUFFIX}") - -# Remember where debugserver binary goes and whether or not we have to test it. -set(DEBUGSERVER_PATH "" CACHE FILEPATH "Path to debugserver") -set(SKIP_TEST_DEBUGSERVER OFF CACHE BOOL "Building the in-tree debugserver was skipped") - -# Reset values in all cases in order to correctly support reconfigurations. -if(use_system_debugserver) - add_custom_target(debugserver - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${system_debugserver} ${LLVM_RUNTIME_OUTPUT_INTDIR} - COMMENT "Copying the system debugserver to LLDB's binaries directory.") - - # Don't test debugserver itself. - # Tests that require debugserver will use the copy. - set(DEBUGSERVER_PATH ${default_debugserver_path} CACHE FILEPATH "" FORCE) - set(SKIP_TEST_DEBUGSERVER ON CACHE BOOL "" FORCE) - - message(STATUS "Copy system debugserver from: ${system_debugserver}") -elseif(build_and_sign_debugserver) - # Build, sign and test debugserver (below) - set(DEBUGSERVER_PATH ${default_debugserver_path} CACHE FILEPATH "" FORCE) - set(SKIP_TEST_DEBUGSERVER OFF CACHE BOOL "" FORCE) - - message(STATUS "lldb debugserver: ${DEBUGSERVER_PATH}") -else() - # No tests for debugserver, no tests that require it. - set(DEBUGSERVER_PATH "" CACHE FILEPATH "" FORCE) - set(SKIP_TEST_DEBUGSERVER ON CACHE BOOL "" FORCE) - - message(STATUS "lldb debugserver will not be available.") -endif() - -if(APPLE) - if(IOS) - find_library(BACKBOARD_LIBRARY BackBoardServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) - find_library(FRONTBOARD_LIBRARY FrontBoardServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) - find_library(SPRINGBOARD_LIBRARY SpringBoardServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) - find_library(MOBILESERVICES_LIBRARY MobileCoreServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) - find_library(LOCKDOWN_LIBRARY lockdown) - - if(NOT BACKBOARD_LIBRARY) - set(SKIP_TEST_DEBUGSERVER ON CACHE BOOL "" FORCE) - endif() - else() - find_library(COCOA_LIBRARY Cocoa) - endif() -endif() - -if(HAVE_LIBCOMPRESSION) - set(LIBCOMPRESSION compression) -endif() - -if(LLDB_USE_ENTITLEMENTS) - if(IOS) - set(entitlements ${CMAKE_CURRENT_SOURCE_DIR}/debugserver-entitlements.plist) - else() - # Same entitlements file as used for lldb-server - set(entitlements ${LLDB_SOURCE_DIR}/resources/debugserver-macosx-entitlements.plist) - endif() -endif() - -if(build_and_sign_debugserver) - target_link_libraries(lldbDebugserverCommon - INTERFACE ${COCOA_LIBRARY} - ${CORE_FOUNDATION_LIBRARY} - ${FOUNDATION_LIBRARY} - ${BACKBOARD_LIBRARY} - ${FRONTBOARD_LIBRARY} - ${SPRINGBOARD_LIBRARY} - ${MOBILESERVICES_LIBRARY} - ${LOCKDOWN_LIBRARY} - lldbDebugserverArchSupport - lldbDebugserverDarwin_DarwinLog - ${LIBCOMPRESSION}) - if(HAVE_LIBCOMPRESSION) - set_property(TARGET lldbDebugserverCommon APPEND PROPERTY - COMPILE_DEFINITIONS HAVE_LIBCOMPRESSION) - endif() - set(LLVM_OPTIONAL_SOURCES ${lldbDebugserverCommonSources}) - add_lldb_tool(debugserver - debugserver.cpp - - LINK_LIBS - lldbDebugserverCommon - - ENTITLEMENTS - ${entitlements} - ) - if(IOS) - set_property(TARGET lldbDebugserverCommon APPEND PROPERTY COMPILE_DEFINITIONS - WITH_LOCKDOWN - WITH_FBS - WITH_BKS - ) - set_property(TARGET debugserver APPEND PROPERTY COMPILE_DEFINITIONS - WITH_LOCKDOWN - WITH_FBS - WITH_BKS - ) - set_property(TARGET lldbDebugserverCommon APPEND PROPERTY COMPILE_FLAGS - -F${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks - ) - endif() -endif() - -if(IOS) - add_library(lldbDebugserverCommon_NonUI ${lldbDebugserverCommonSources}) - target_link_libraries(lldbDebugserverCommon_NonUI - INTERFACE ${COCOA_LIBRARY} - ${CORE_FOUNDATION_LIBRARY} - ${FOUNDATION_LIBRARY} - lldbDebugserverArchSupport - lldbDebugserverDarwin_DarwinLog - ${LIBCOMPRESSION}) - if(HAVE_LIBCOMPRESSION) - set_property(TARGET lldbDebugserverCommon_NonUI APPEND PROPERTY - COMPILE_DEFINITIONS HAVE_LIBCOMPRESSION) - endif() - - add_lldb_tool(debugserver-nonui - debugserver.cpp - - LINK_LIBS - lldbDebugserverCommon_NonUI - - ENTITLEMENTS - ${entitlements} - ) -endif() |