llvm-project/lldb/source/Host/CMakeLists.txt

178 lines
4.3 KiB
CMake

if (APPLE AND LLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY)
# The arpa/inet.h header used in the files here is providing a miscompiled
# htonl function on macOS <= 10.15 when local submodule visibility is active.
# Disabling modules in this directory until this is is fixed.
# See rdar://problem/62886385
remove_module_flags()
endif()
macro(add_host_subdirectory group)
list(APPEND HOST_SOURCES ${ARGN})
source_group(${group} FILES ${ARGN})
endmacro()
add_host_subdirectory(common
common/FileAction.cpp
common/FileCache.cpp
common/File.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/LZMA.cpp
common/MainLoop.cpp
common/MonitoringProcessLauncher.cpp
common/NativeProcessProtocol.cpp
common/NativeRegisterContext.cpp
common/NativeThreadProtocol.cpp
common/NativeWatchpointList.cpp
common/OptionParser.cpp
common/PipeBase.cpp
common/ProcessLaunchInfo.cpp
common/ProcessRunLock.cpp
common/PseudoTerminal.cpp
common/SocketAddress.cpp
common/Socket.cpp
common/TCPSocket.cpp
common/Terminal.cpp
common/ThreadLauncher.cpp
common/UDPSocket.cpp
common/XML.cpp
)
if (LLDB_ENABLE_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/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/FileSystemPosix.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")
add_subdirectory(macosx/objcxx)
set(LLDBObjCLibs lldbHostMacOSXObjCXX)
add_host_subdirectory(macosx
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(APPLE_EMBEDDED)
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/HostNetBSD.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 (LLDB_ENABLE_LIBXML2)
list(APPEND EXTRA_LIBS LibXml2::LibXml2)
endif()
if (HAVE_LIBDL)
list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
endif()
if (LLDB_ENABLE_LIBEDIT)
list(APPEND EXTRA_LIBS ${LibEdit_LIBRARIES})
endif()
if (LLDB_ENABLE_LZMA)
list(APPEND EXTRA_LIBS ${LIBLZMA_LIBRARIES})
endif()
if (WIN32)
list(APPEND LLDB_SYSTEM_LIBS psapi)
endif()
if (LLDB_ENABLE_LIBEDIT)
list(APPEND LLDB_LIBEDIT_LIBS ${LibEdit_LIBRARIES})
if (LLVM_BUILD_STATIC)
list(APPEND LLDB_SYSTEM_LIBS gpm)
endif()
endif()
add_lldb_library(lldbHost
${HOST_SOURCES}
LINK_LIBS
lldbUtility
${EXTRA_LIBS}
${LLDBObjCLibs}
${LLDB_LIBEDIT_LIBS}
LINK_COMPONENTS
Object
Support
)
if (LLDB_ENABLE_LIBEDIT)
target_include_directories(lldbHost PUBLIC ${LibEdit_INCLUDE_DIRS})
endif()