xref: /openbsd-src/gnu/llvm/lldb/tools/lldb-server/CMakeLists.txt (revision 101d251d5caf88a9341f3045ab62e122abae1b90)
1set(LLVM_TARGET_DEFINITIONS LLGSOptions.td)
2tablegen(LLVM LLGSOptions.inc -gen-opt-parser-defs)
3add_public_tablegen_target(LLGSOptionsTableGen)
4set_target_properties(LLGSOptionsTableGen PROPERTIES FOLDER "lldb misc")
5
6set(LLDB_PLUGINS)
7
8if(CMAKE_SYSTEM_NAME MATCHES "Linux|Android")
9  list(APPEND LLDB_PLUGINS lldbPluginProcessLinux)
10endif()
11
12if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
13  list(APPEND LLDB_PLUGINS lldbPluginProcessFreeBSD)
14endif()
15
16if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
17  list(APPEND LLDB_PLUGINS lldbPluginProcessNetBSD)
18endif()
19
20if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
21  list(APPEND LLDB_PLUGINS lldbPluginProcessOpenBSD)
22endif()
23
24if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
25  list(APPEND LLDB_PLUGINS lldbPluginObjectFileMachO)
26elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
27  list(APPEND LLDB_PLUGINS lldbPluginObjectFilePECOFF)
28else()
29  list(APPEND LLDB_PLUGINS lldbPluginObjectFileELF)
30endif()
31
32if(APPLE_EMBEDDED)
33  if(LLDB_CODESIGN_IDENTITY)
34    # Use explicit LLDB identity
35    set(LLVM_CODESIGNING_IDENTITY ${LLDB_CODESIGN_IDENTITY})
36  else()
37    # Use explicit LLVM identity or default to lldb_codesign if empty
38    if(NOT LLVM_CODESIGNING_IDENTITY)
39      set(LLVM_CODESIGNING_IDENTITY lldb_codesign)
40    endif()
41  endif()
42endif()
43
44add_lldb_tool(lldb-server
45    Acceptor.cpp
46    lldb-gdbserver.cpp
47    lldb-platform.cpp
48    lldb-server.cpp
49    LLDBServerUtilities.cpp
50    SystemInitializerLLGS.cpp
51
52    LINK_LIBS
53      lldbHost
54      lldbInitialization
55      lldbVersion
56      ${LLDB_PLUGINS}
57      lldbPluginInstructionARM
58      lldbPluginInstructionLoongArch
59      lldbPluginInstructionMIPS
60      lldbPluginInstructionMIPS64
61      lldbPluginInstructionRISCV
62      ${LLDB_SYSTEM_LIBS}
63
64    LINK_COMPONENTS
65      Option
66      Support
67)
68
69add_dependencies(lldb-server
70  LLGSOptionsTableGen
71  ${tablegen_deps}
72)
73target_include_directories(lldb-server PRIVATE "${LLDB_SOURCE_DIR}/source")
74target_link_libraries(lldb-server PRIVATE ${LLDB_SYSTEM_LIBS})
75