xref: /openbsd-src/gnu/llvm/lldb/source/Host/CMakeLists.txt (revision f6aab3d83b51b91c24247ad2c2573574de475a82)
1if (APPLE AND LLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY)
2  # The arpa/inet.h header used in the files here is providing a miscompiled
3  # htonl function on macOS <= 10.15 when local submodule visibility is active.
4  # Disabling modules in this directory until this is is fixed.
5  # See rdar://problem/62886385
6  remove_module_flags()
7endif()
8
9macro(add_host_subdirectory group)
10  list(APPEND HOST_SOURCES ${ARGN})
11  source_group(${group} FILES ${ARGN})
12endmacro()
13
14add_host_subdirectory(common
15  common/FileAction.cpp
16  common/FileCache.cpp
17  common/File.cpp
18  common/FileSystem.cpp
19  common/GetOptInc.cpp
20  common/Host.cpp
21  common/HostInfoBase.cpp
22  common/HostNativeThreadBase.cpp
23  common/HostProcess.cpp
24  common/HostThread.cpp
25  common/LockFileBase.cpp
26  common/LZMA.cpp
27  common/MainLoopBase.cpp
28  common/MonitoringProcessLauncher.cpp
29  common/NativeProcessProtocol.cpp
30  common/NativeRegisterContext.cpp
31  common/NativeThreadProtocol.cpp
32  common/NativeWatchpointList.cpp
33  common/OptionParser.cpp
34  common/PipeBase.cpp
35  common/ProcessLaunchInfo.cpp
36  common/ProcessRunLock.cpp
37  common/PseudoTerminal.cpp
38  common/SocketAddress.cpp
39  common/Socket.cpp
40  common/TCPSocket.cpp
41  common/Terminal.cpp
42  common/ThreadLauncher.cpp
43  common/UDPSocket.cpp
44  common/XML.cpp
45  )
46
47if (LLDB_ENABLE_LIBEDIT)
48  add_host_subdirectory(common
49    common/Editline.cpp
50    )
51endif()
52
53add_host_subdirectory(posix
54  posix/ConnectionFileDescriptorPosix.cpp
55  )
56
57if (CMAKE_SYSTEM_NAME MATCHES "Windows")
58  add_host_subdirectory(windows
59    windows/ConnectionGenericFileWindows.cpp
60    windows/FileSystem.cpp
61    windows/Host.cpp
62    windows/HostInfoWindows.cpp
63    windows/HostProcessWindows.cpp
64    windows/HostThreadWindows.cpp
65    windows/LockFileWindows.cpp
66    windows/MainLoopWindows.cpp
67    windows/PipeWindows.cpp
68    windows/ProcessLauncherWindows.cpp
69    windows/ProcessRunLock.cpp
70    )
71else()
72  add_host_subdirectory(posix
73    posix/DomainSocket.cpp
74    posix/FileSystemPosix.cpp
75    posix/HostInfoPosix.cpp
76    posix/HostProcessPosix.cpp
77    posix/HostThreadPosix.cpp
78    posix/LockFilePosix.cpp
79    posix/MainLoopPosix.cpp
80    posix/PipePosix.cpp
81    posix/ProcessLauncherPosixFork.cpp
82    )
83
84  if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
85    add_subdirectory(macosx/objcxx)
86    set(LLDBObjCLibs lldbHostMacOSXObjCXX)
87    add_host_subdirectory(macosx
88      macosx/cfcpp/CFCBundle.cpp
89      macosx/cfcpp/CFCData.cpp
90      macosx/cfcpp/CFCMutableArray.cpp
91      macosx/cfcpp/CFCMutableDictionary.cpp
92      macosx/cfcpp/CFCMutableSet.cpp
93      macosx/cfcpp/CFCString.cpp
94      )
95    if(APPLE_EMBEDDED)
96      set_property(SOURCE macosx/Host.mm APPEND PROPERTY
97               COMPILE_DEFINITIONS "NO_XPC_SERVICES=1")
98    endif()
99
100
101  elseif (CMAKE_SYSTEM_NAME MATCHES "Linux|Android")
102    add_host_subdirectory(linux
103      linux/AbstractSocket.cpp
104      linux/Host.cpp
105      linux/HostInfoLinux.cpp
106      linux/LibcGlue.cpp
107      linux/Support.cpp
108      )
109    if (CMAKE_SYSTEM_NAME MATCHES "Android")
110      add_host_subdirectory(android
111        android/HostInfoAndroid.cpp
112        android/LibcGlue.cpp
113        )
114    endif()
115  elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
116    add_host_subdirectory(freebsd
117      freebsd/Host.cpp
118      freebsd/HostInfoFreeBSD.cpp
119      )
120
121  elseif (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
122    add_host_subdirectory(netbsd
123      netbsd/HostNetBSD.cpp
124      netbsd/HostInfoNetBSD.cpp
125      )
126
127  elseif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
128    add_host_subdirectory(openbsd
129      openbsd/Host.cpp
130      openbsd/HostInfoOpenBSD.cpp
131      )
132  endif()
133endif()
134
135set(EXTRA_LIBS)
136if (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
137  list(APPEND EXTRA_LIBS kvm)
138endif()
139if (LLDB_ENABLE_LIBXML2)
140  list(APPEND EXTRA_LIBS LibXml2::LibXml2)
141endif()
142if (HAVE_LIBDL)
143  list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
144endif()
145if (LLDB_ENABLE_LIBEDIT)
146  list(APPEND EXTRA_LIBS LibEdit::LibEdit)
147endif()
148if (LLDB_ENABLE_LZMA)
149  list(APPEND EXTRA_LIBS ${LIBLZMA_LIBRARIES})
150endif()
151if (WIN32)
152  list(APPEND LLDB_SYSTEM_LIBS psapi)
153endif()
154
155if (LLDB_ENABLE_LIBEDIT)
156  list(APPEND LLDB_LIBEDIT_LIBS LibEdit::LibEdit)
157  if (LLVM_BUILD_STATIC)
158    list(APPEND LLDB_SYSTEM_LIBS gpm)
159  endif()
160endif()
161
162add_lldb_library(lldbHost
163  ${HOST_SOURCES}
164
165  LINK_LIBS
166    lldbUtility
167    ${EXTRA_LIBS}
168    ${LLDBObjCLibs}
169    ${LLDB_LIBEDIT_LIBS}
170
171  LINK_COMPONENTS
172    Object
173    Support
174  )
175
176