xref: /llvm-project/lldb/source/Plugins/CMakeLists.txt (revision c3a302d399e62ac2a21c52f1f0215bd772cbf54b)
1add_subdirectory(ABI)
2add_subdirectory(Architecture)
3add_subdirectory(Disassembler)
4add_subdirectory(DynamicLoader)
5add_subdirectory(ExpressionParser)
6add_subdirectory(Instruction)
7add_subdirectory(InstrumentationRuntime)
8add_subdirectory(JITLoader)
9add_subdirectory(Language)
10add_subdirectory(LanguageRuntime)
11add_subdirectory(MemoryHistory)
12add_subdirectory(ObjectContainer)
13add_subdirectory(ObjectFile)
14add_subdirectory(OperatingSystem)
15add_subdirectory(Platform)
16add_subdirectory(Process)
17add_subdirectory(REPL)
18add_subdirectory(RegisterTypeBuilder)
19add_subdirectory(ScriptInterpreter)
20add_subdirectory(StructuredData)
21add_subdirectory(SymbolFile)
22add_subdirectory(SystemRuntime)
23add_subdirectory(SymbolLocator)
24add_subdirectory(SymbolVendor)
25add_subdirectory(Trace)
26add_subdirectory(TraceExporter)
27add_subdirectory(TypeSystem)
28add_subdirectory(UnwindAssembly)
29
30set(LLDB_STRIPPED_PLUGINS)
31get_property(LLDB_ALL_PLUGINS GLOBAL PROPERTY LLDB_PLUGINS)
32
33set(LLDB_ENUM_PLUGINS "")
34
35# FIXME: ProcessWindowsCommon needs to be initialized after all other process
36# plugins but before ProcessGDBRemote.
37set(LLDB_PROCESS_WINDOWS_PLUGIN "")
38set(LLDB_PROCESS_GDB_PLUGIN "")
39
40foreach(p ${LLDB_ALL_PLUGINS})
41  # Strip lldbPlugin from the plugin name.
42  string(SUBSTRING ${p} 10 -1 pStripped)
43  if(${pStripped} MATCHES "^ScriptInterpreter*")
44    set(LLDB_ENUM_PLUGINS "${LLDB_ENUM_PLUGINS}LLDB_SCRIPT_PLUGIN(${pStripped})\n")
45  elseif(${pStripped} STREQUAL "ProcessWindowsCommon")
46    set(LLDB_PROCESS_WINDOWS_PLUGIN "LLDB_PLUGIN(${pStripped})\n")
47  elseif(${pStripped} STREQUAL "ProcessGDBRemote")
48    set(LLDB_PROCESS_GDB_PLUGIN "LLDB_PLUGIN(${pStripped})\n")
49  else()
50    set(LLDB_ENUM_PLUGINS "${LLDB_ENUM_PLUGINS}LLDB_PLUGIN(${pStripped})\n")
51  endif()
52endforeach(p)
53
54configure_file(
55  ${CMAKE_CURRENT_SOURCE_DIR}/Plugins.def.in
56  ${CMAKE_CURRENT_BINARY_DIR}/Plugins.def
57  )
58
59set_property(GLOBAL PROPERTY LLDB_PLUGINS_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR})
60