Summary: The only reason python was used in the Host module was to compute the python path. I resolve this the same way as D47384 did for clang, by moving the path computation into the python plugin and modifying SBHostOS class to call into this module for ePathTypePythonDir. Reviewers: zturner, jingham, davide Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D48215 llvm-svn: 335104
177 lines
4.6 KiB
CMake
177 lines
4.6 KiB
CMake
macro(add_host_subdirectory group)
|
|
list(APPEND HOST_SOURCES ${ARGN})
|
|
source_group(${group} FILES ${ARGN})
|
|
endmacro()
|
|
|
|
# Removes all module flags from the current CMAKE_CXX_FLAGS. Used for
|
|
# the Objective-C++ code in lldb which we don't want to build with modules.
|
|
# Reasons for this are that modules with Objective-C++ would require that
|
|
# all LLVM/Clang modules are Objective-C++ compatible (which they are likely
|
|
# not) and we would have rebuild a second set of modules just for the few
|
|
# Objective-C++ files in lldb (which slows down the build process).
|
|
macro(remove_module_flags)
|
|
string(REGEX REPLACE "-fmodules-cache-path=[^ ]+" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
string(REGEX REPLACE "-fmodules" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
string(REGEX REPLACE "-fcxx-modules" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
endmacro()
|
|
|
|
add_host_subdirectory(common
|
|
common/File.cpp
|
|
common/FileCache.cpp
|
|
common/FileSystem.cpp
|
|
common/GetOptInc.cpp
|
|
common/Host.cpp
|
|
common/HostInfoBase.cpp
|
|
common/HostNativeThreadBase.cpp
|
|
common/HostProcess.cpp
|
|
common/HostThread.cpp
|
|
common/LockFileBase.cpp
|
|
common/MainLoop.cpp
|
|
common/MonitoringProcessLauncher.cpp
|
|
common/NativeBreakpoint.cpp
|
|
common/NativeBreakpointList.cpp
|
|
common/NativeWatchpointList.cpp
|
|
common/NativeProcessProtocol.cpp
|
|
common/NativeRegisterContext.cpp
|
|
common/NativeThreadProtocol.cpp
|
|
common/OptionParser.cpp
|
|
common/PipeBase.cpp
|
|
common/ProcessRunLock.cpp
|
|
common/PseudoTerminal.cpp
|
|
common/Socket.cpp
|
|
common/SocketAddress.cpp
|
|
common/SoftwareBreakpoint.cpp
|
|
common/StringConvert.cpp
|
|
common/Symbols.cpp
|
|
common/TaskPool.cpp
|
|
common/TCPSocket.cpp
|
|
common/Terminal.cpp
|
|
common/ThreadLauncher.cpp
|
|
common/XML.cpp
|
|
common/UDPSocket.cpp
|
|
)
|
|
|
|
if (NOT LLDB_DISABLE_LIBEDIT)
|
|
add_host_subdirectory(common
|
|
common/Editline.cpp
|
|
)
|
|
endif()
|
|
|
|
add_host_subdirectory(posix
|
|
posix/ConnectionFileDescriptorPosix.cpp
|
|
)
|
|
|
|
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|
add_host_subdirectory(windows
|
|
windows/ConnectionGenericFileWindows.cpp
|
|
windows/EditLineWin.cpp
|
|
windows/FileSystem.cpp
|
|
windows/Host.cpp
|
|
windows/HostInfoWindows.cpp
|
|
windows/HostProcessWindows.cpp
|
|
windows/HostThreadWindows.cpp
|
|
windows/LockFileWindows.cpp
|
|
windows/PipeWindows.cpp
|
|
windows/ProcessLauncherWindows.cpp
|
|
windows/ProcessRunLock.cpp
|
|
windows/Windows.cpp
|
|
)
|
|
else()
|
|
add_host_subdirectory(posix
|
|
posix/DomainSocket.cpp
|
|
posix/FileSystem.cpp
|
|
posix/HostInfoPosix.cpp
|
|
posix/HostProcessPosix.cpp
|
|
posix/HostThreadPosix.cpp
|
|
posix/LockFilePosix.cpp
|
|
posix/PipePosix.cpp
|
|
posix/ProcessLauncherPosixFork.cpp
|
|
)
|
|
|
|
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
include_directories(SYSTEM ${LIBXML2_INCLUDE_DIR})
|
|
add_subdirectory(macosx/objcxx)
|
|
set(LLDBObjCLibs lldbHostMacOSXObjCXX)
|
|
add_host_subdirectory(maqcosx
|
|
macosx/Symbols.cpp
|
|
macosx/cfcpp/CFCBundle.cpp
|
|
macosx/cfcpp/CFCData.cpp
|
|
macosx/cfcpp/CFCMutableArray.cpp
|
|
macosx/cfcpp/CFCMutableDictionary.cpp
|
|
macosx/cfcpp/CFCMutableSet.cpp
|
|
macosx/cfcpp/CFCString.cpp
|
|
)
|
|
if(IOS)
|
|
set_property(SOURCE macosx/Host.mm APPEND PROPERTY
|
|
COMPILE_DEFINITIONS "NO_XPC_SERVICES=1")
|
|
endif()
|
|
|
|
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "Linux|Android")
|
|
add_host_subdirectory(linux
|
|
linux/AbstractSocket.cpp
|
|
linux/Host.cpp
|
|
linux/HostInfoLinux.cpp
|
|
linux/LibcGlue.cpp
|
|
linux/Support.cpp
|
|
)
|
|
if (CMAKE_SYSTEM_NAME MATCHES "Android")
|
|
add_host_subdirectory(android
|
|
android/HostInfoAndroid.cpp
|
|
android/LibcGlue.cpp
|
|
)
|
|
endif()
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
|
add_host_subdirectory(freebsd
|
|
freebsd/Host.cpp
|
|
freebsd/HostInfoFreeBSD.cpp
|
|
)
|
|
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
|
add_host_subdirectory(netbsd
|
|
netbsd/Host.cpp
|
|
netbsd/HostInfoNetBSD.cpp
|
|
)
|
|
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
|
add_host_subdirectory(openbsd
|
|
openbsd/Host.cpp
|
|
openbsd/HostInfoOpenBSD.cpp
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
set(EXTRA_LIBS)
|
|
if (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
|
list(APPEND EXTRA_LIBS kvm)
|
|
endif ()
|
|
if (APPLE)
|
|
list(APPEND EXTRA_LIBS xml2)
|
|
else ()
|
|
if (LIBXML2_FOUND)
|
|
list(APPEND EXTRA_LIBS ${LIBXML2_LIBRARIES})
|
|
endif()
|
|
endif ()
|
|
if (HAVE_LIBDL)
|
|
list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
|
|
endif()
|
|
if (NOT LLDB_DISABLE_LIBEDIT)
|
|
list(APPEND EXTRA_LIBS edit)
|
|
endif()
|
|
|
|
add_lldb_library(lldbHost
|
|
${HOST_SOURCES}
|
|
|
|
LINK_LIBS
|
|
lldbCore
|
|
lldbSymbol
|
|
lldbTarget
|
|
lldbUtility
|
|
${EXTRA_LIBS}
|
|
${LLDBObjCLibs}
|
|
|
|
LINK_COMPONENTS
|
|
Object
|
|
Support
|
|
)
|