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