JDevlieghere updated this revision to Diff 247552.
JDevlieghere added a comment.

- Rebased.
- Tested the cache configuration on macOS.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73016/new/

https://reviews.llvm.org/D73016

Files:
  lldb/cmake/caches/Apple-lldb-macOS.cmake
  lldb/cmake/modules/AddLLDB.cmake
  lldb/source/API/SBCommandReturnObject.cpp
  lldb/source/Plugins/ABI/CMakeLists.txt
  lldb/source/Plugins/Architecture/CMakeLists.txt
  lldb/source/Plugins/Disassembler/CMakeLists.txt
  lldb/source/Plugins/DynamicLoader/CMakeLists.txt
  lldb/source/Plugins/Instruction/CMakeLists.txt
  lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt
  lldb/source/Plugins/JITLoader/CMakeLists.txt
  lldb/source/Plugins/Language/CMakeLists.txt
  lldb/source/Plugins/LanguageRuntime/CMakeLists.txt
  lldb/source/Plugins/MemoryHistory/CMakeLists.txt
  lldb/source/Plugins/ObjectContainer/CMakeLists.txt
  lldb/source/Plugins/ObjectFile/CMakeLists.txt
  lldb/source/Plugins/OperatingSystem/CMakeLists.txt
  lldb/source/Plugins/Platform/CMakeLists.txt
  lldb/source/Plugins/Process/CMakeLists.txt
  lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt
  lldb/source/Plugins/StructuredData/CMakeLists.txt
  lldb/source/Plugins/SymbolFile/CMakeLists.txt
  lldb/source/Plugins/SymbolVendor/CMakeLists.txt
  lldb/source/Plugins/SystemRuntime/CMakeLists.txt
  lldb/source/Plugins/TypeSystem/CMakeLists.txt
  lldb/source/Plugins/UnwindAssembly/CMakeLists.txt

Index: lldb/source/Plugins/UnwindAssembly/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/UnwindAssembly/CMakeLists.txt
+++ lldb/source/Plugins/UnwindAssembly/CMakeLists.txt
@@ -1,2 +1,2 @@
-add_subdirectory(InstEmulation)
-add_subdirectory(x86)
+add_lldb_plugin_subdirectory(InstEmulation)
+add_lldb_plugin_subdirectory(x86)
Index: lldb/source/Plugins/TypeSystem/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/TypeSystem/CMakeLists.txt
+++ lldb/source/Plugins/TypeSystem/CMakeLists.txt
@@ -1 +1 @@
-add_subdirectory(Clang)
+add_lldb_plugin_subdirectory(Clang)
Index: lldb/source/Plugins/SystemRuntime/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/SystemRuntime/CMakeLists.txt
+++ lldb/source/Plugins/SystemRuntime/CMakeLists.txt
@@ -1 +1 @@
-add_subdirectory(MacOSX)
+add_lldb_plugin_subdirectory(MacOSX)
Index: lldb/source/Plugins/SymbolVendor/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/SymbolVendor/CMakeLists.txt
+++ lldb/source/Plugins/SymbolVendor/CMakeLists.txt
@@ -1,6 +1,6 @@
 if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
-  add_subdirectory(MacOSX)
+  add_lldb_plugin_subdirectory(MacOSX)
 endif()
 
-add_subdirectory(ELF)
-add_subdirectory(wasm)
+add_lldb_plugin_subdirectory(ELF)
+add_lldb_plugin_subdirectory(wasm)
Index: lldb/source/Plugins/SymbolFile/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/SymbolFile/CMakeLists.txt
+++ lldb/source/Plugins/SymbolFile/CMakeLists.txt
@@ -1,5 +1,5 @@
-add_subdirectory(Breakpad)
-add_subdirectory(DWARF)
-add_subdirectory(Symtab)
-add_subdirectory(NativePDB)
-add_subdirectory(PDB)
+add_lldb_plugin_subdirectory(Breakpad)
+add_lldb_plugin_subdirectory(DWARF)
+add_lldb_plugin_subdirectory(Symtab)
+add_lldb_plugin_subdirectory(NativePDB)
+add_lldb_plugin_subdirectory(PDB)
Index: lldb/source/Plugins/StructuredData/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/StructuredData/CMakeLists.txt
+++ lldb/source/Plugins/StructuredData/CMakeLists.txt
@@ -1,2 +1,2 @@
-add_subdirectory(DarwinLog)
+add_lldb_plugin_subdirectory(DarwinLog)
 
Index: lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt
+++ lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt
@@ -1,8 +1,8 @@
-add_subdirectory(None)
+add_lldb_plugin_subdirectory(None)
 if (LLDB_ENABLE_PYTHON)
-  add_subdirectory(Python)
+  add_lldb_plugin_subdirectory(Python)
 endif()
 
 if (LLDB_ENABLE_LUA)
-  add_subdirectory(Lua)
+  add_lldb_plugin_subdirectory(Lua)
 endif()
Index: lldb/source/Plugins/Process/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/Process/CMakeLists.txt
+++ lldb/source/Plugins/Process/CMakeLists.txt
@@ -1,19 +1,19 @@
 if (CMAKE_SYSTEM_NAME MATCHES "Linux|Android")
-  add_subdirectory(Linux)
-  add_subdirectory(POSIX)
+  add_lldb_plugin_subdirectory(Linux)
+  add_lldb_plugin_subdirectory(POSIX)
 elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
-  add_subdirectory(FreeBSD)
-  add_subdirectory(POSIX)
+  add_lldb_plugin_subdirectory(FreeBSD)
+  add_lldb_plugin_subdirectory(POSIX)
 elseif (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
-  add_subdirectory(NetBSD)
-  add_subdirectory(POSIX)
+  add_lldb_plugin_subdirectory(NetBSD)
+  add_lldb_plugin_subdirectory(POSIX)
 elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
-  add_subdirectory(Windows/Common)
+  add_lldb_plugin_subdirectory(Windows/Common)
 elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
-  add_subdirectory(MacOSX-Kernel)
+  add_lldb_plugin_subdirectory(MacOSX-Kernel)
 endif()
-add_subdirectory(gdb-remote)
-add_subdirectory(Utility)
-add_subdirectory(elf-core)
-add_subdirectory(mach-core)
-add_subdirectory(minidump)
+add_lldb_plugin_subdirectory(gdb-remote)
+add_lldb_plugin_subdirectory(Utility)
+add_lldb_plugin_subdirectory(elf-core)
+add_lldb_plugin_subdirectory(mach-core)
+add_lldb_plugin_subdirectory(minidump)
Index: lldb/source/Plugins/Platform/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/Platform/CMakeLists.txt
+++ lldb/source/Plugins/Platform/CMakeLists.txt
@@ -1,17 +1,17 @@
 #if (CMAKE_SYSTEM_NAME MATCHES "Linux")
-  add_subdirectory(Linux)
+  add_lldb_plugin_subdirectory(Linux)
 #elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
-  add_subdirectory(FreeBSD)
+  add_lldb_plugin_subdirectory(FreeBSD)
 #elseif (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
-  add_subdirectory(NetBSD)
+  add_lldb_plugin_subdirectory(NetBSD)
 #elseif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
-  add_subdirectory(OpenBSD)
+  add_lldb_plugin_subdirectory(OpenBSD)
 #elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
-  add_subdirectory(MacOSX)
+  add_lldb_plugin_subdirectory(MacOSX)
 #elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
-  add_subdirectory(Windows)
+  add_lldb_plugin_subdirectory(Windows)
 #endif()
 
-add_subdirectory(POSIX)
-add_subdirectory(gdb-server)
-add_subdirectory(Android)
+add_lldb_plugin_subdirectory(POSIX)
+add_lldb_plugin_subdirectory(gdb-server)
+add_lldb_plugin_subdirectory(Android)
Index: lldb/source/Plugins/OperatingSystem/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/OperatingSystem/CMakeLists.txt
+++ lldb/source/Plugins/OperatingSystem/CMakeLists.txt
@@ -1,3 +1,3 @@
 if (LLDB_ENABLE_PYTHON)
-  add_subdirectory(Python)
+  add_lldb_plugin_subdirectory(Python)
 endif()
Index: lldb/source/Plugins/ObjectFile/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/ObjectFile/CMakeLists.txt
+++ lldb/source/Plugins/ObjectFile/CMakeLists.txt
@@ -1,6 +1,6 @@
-add_subdirectory(Breakpad)
-add_subdirectory(ELF)
-add_subdirectory(Mach-O)
-add_subdirectory(PECOFF)
-add_subdirectory(JIT)
-add_subdirectory(wasm)
\ No newline at end of file
+add_lldb_plugin_subdirectory(Breakpad)
+add_lldb_plugin_subdirectory(ELF)
+add_lldb_plugin_subdirectory(Mach-O)
+add_lldb_plugin_subdirectory(PECOFF)
+add_lldb_plugin_subdirectory(JIT)
+add_lldb_plugin_subdirectory(wasm)
\ No newline at end of file
Index: lldb/source/Plugins/ObjectContainer/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/ObjectContainer/CMakeLists.txt
+++ lldb/source/Plugins/ObjectContainer/CMakeLists.txt
@@ -1,2 +1,2 @@
-add_subdirectory(BSD-Archive)
-add_subdirectory(Universal-Mach-O)
+add_lldb_plugin_subdirectory(BSD-Archive)
+add_lldb_plugin_subdirectory(Universal-Mach-O)
Index: lldb/source/Plugins/MemoryHistory/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/MemoryHistory/CMakeLists.txt
+++ lldb/source/Plugins/MemoryHistory/CMakeLists.txt
@@ -1 +1 @@
-add_subdirectory(asan)
+add_lldb_plugin_subdirectory(asan)
Index: lldb/source/Plugins/LanguageRuntime/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/LanguageRuntime/CMakeLists.txt
+++ lldb/source/Plugins/LanguageRuntime/CMakeLists.txt
@@ -1,3 +1,3 @@
-add_subdirectory(CPlusPlus)
-add_subdirectory(ObjC)
-add_subdirectory(RenderScript)
+add_lldb_plugin_subdirectory(CPlusPlus)
+add_lldb_plugin_subdirectory(ObjC)
+add_lldb_plugin_subdirectory(RenderScript)
Index: lldb/source/Plugins/Language/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/Language/CMakeLists.txt
+++ lldb/source/Plugins/Language/CMakeLists.txt
@@ -1,4 +1,4 @@
+add_lldb_plugin_subdirectory(CPlusPlus)
+add_lldb_plugin_subdirectory(ObjC)
+add_lldb_plugin_subdirectory(ObjCPlusPlus)
 add_subdirectory(ClangCommon)
-add_subdirectory(CPlusPlus)
-add_subdirectory(ObjC)
-add_subdirectory(ObjCPlusPlus)
Index: lldb/source/Plugins/JITLoader/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/JITLoader/CMakeLists.txt
+++ lldb/source/Plugins/JITLoader/CMakeLists.txt
@@ -1 +1 @@
-add_subdirectory(GDB)
+add_lldb_plugin_subdirectory(GDB)
Index: lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt
+++ lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt
@@ -1,4 +1,4 @@
-add_subdirectory(ASan)
-add_subdirectory(MainThreadChecker)
-add_subdirectory(TSan)
-add_subdirectory(UBSan)
+add_lldb_plugin_subdirectory(ASan)
+add_lldb_plugin_subdirectory(MainThreadChecker)
+add_lldb_plugin_subdirectory(TSan)
+add_lldb_plugin_subdirectory(UBSan)
Index: lldb/source/Plugins/Instruction/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/Instruction/CMakeLists.txt
+++ lldb/source/Plugins/Instruction/CMakeLists.txt
@@ -1,5 +1,5 @@
-add_subdirectory(ARM)
-add_subdirectory(ARM64)
-add_subdirectory(MIPS)
-add_subdirectory(MIPS64)
-add_subdirectory(PPC64)
+add_lldb_plugin_subdirectory(ARM)
+add_lldb_plugin_subdirectory(ARM64)
+add_lldb_plugin_subdirectory(MIPS)
+add_lldb_plugin_subdirectory(MIPS64)
+add_lldb_plugin_subdirectory(PPC64)
Index: lldb/source/Plugins/DynamicLoader/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/DynamicLoader/CMakeLists.txt
+++ lldb/source/Plugins/DynamicLoader/CMakeLists.txt
@@ -1,7 +1,7 @@
-add_subdirectory(Darwin-Kernel)
-add_subdirectory(MacOSX-DYLD)
-add_subdirectory(POSIX-DYLD)
-add_subdirectory(Static)
-add_subdirectory(Hexagon-DYLD)
-add_subdirectory(Windows-DYLD)
-add_subdirectory(wasm-DYLD)
+add_lldb_plugin_subdirectory(Darwin-Kernel)
+add_lldb_plugin_subdirectory(MacOSX-DYLD)
+add_lldb_plugin_subdirectory(POSIX-DYLD)
+add_lldb_plugin_subdirectory(Static)
+add_lldb_plugin_subdirectory(Hexagon-DYLD)
+add_lldb_plugin_subdirectory(Windows-DYLD)
+add_lldb_plugin_subdirectory(wasm-DYLD)
Index: lldb/source/Plugins/Disassembler/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/Disassembler/CMakeLists.txt
+++ lldb/source/Plugins/Disassembler/CMakeLists.txt
@@ -1 +1 @@
-add_subdirectory(LLVMC)
+add_lldb_plugin_subdirectory(LLVMC)
Index: lldb/source/Plugins/Architecture/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/Architecture/CMakeLists.txt
+++ lldb/source/Plugins/Architecture/CMakeLists.txt
@@ -1,3 +1,3 @@
-add_subdirectory(Arm)
-add_subdirectory(Mips)
-add_subdirectory(PPC64)
+add_lldb_plugin_subdirectory(Arm)
+add_lldb_plugin_subdirectory(Mips)
+add_lldb_plugin_subdirectory(PPC64)
Index: lldb/source/Plugins/ABI/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/ABI/CMakeLists.txt
+++ lldb/source/Plugins/ABI/CMakeLists.txt
@@ -1,5 +1,5 @@
 foreach(target AArch64 ARM ARC Hexagon Mips PowerPC SystemZ X86)
   if (${target} IN_LIST LLVM_TARGETS_TO_BUILD)
-    add_subdirectory(${target})
+    add_lldb_plugin_subdirectory(${target})
   endif()
 endforeach()
Index: lldb/source/API/SBCommandReturnObject.cpp
===================================================================
--- lldb/source/API/SBCommandReturnObject.cpp
+++ lldb/source/API/SBCommandReturnObject.cpp
@@ -15,6 +15,8 @@
 #include "lldb/Interpreter/CommandReturnObject.h"
 #include "lldb/Utility/ConstString.h"
 #include "lldb/Utility/Status.h"
+#include <iostream>
+#include <fstream>
 
 using namespace lldb;
 using namespace lldb_private;
@@ -93,6 +95,10 @@
   LLDB_RECORD_METHOD_NO_ARGS(const char *, SBCommandReturnObject, GetOutput);
 
   ConstString output(ref().GetOutputData());
+  std::ofstream reproducer_log_file;
+  reproducer_log_file.open(lldb_private::repro::Reproducer::Instance().IsCapturing() ? "/tmp/capture.log" : "/tmp/replay.log", std::fstream::app);
+  reproducer_log_file << output.AsCString(/*value_if_empty*/ "") << "\n";
+  reproducer_log_file.close();
   return output.AsCString(/*value_if_empty*/ "");
 }
 
@@ -100,6 +106,10 @@
   LLDB_RECORD_METHOD_NO_ARGS(const char *, SBCommandReturnObject, GetError);
 
   ConstString output(ref().GetErrorData());
+  std::ofstream reproducer_log_file;
+  reproducer_log_file.open(lldb_private::repro::Reproducer::Instance().IsCapturing() ? "/tmp/capture.log" : "/tmp/replay.log", std::fstream::app);
+  reproducer_log_file << output.AsCString(/*value_if_empty*/ "") << "\n";
+  reproducer_log_file.close();
   return output.AsCString(/*value_if_empty*/ "");
 }
 
Index: lldb/cmake/modules/AddLLDB.cmake
===================================================================
--- lldb/cmake/modules/AddLLDB.cmake
+++ lldb/cmake/modules/AddLLDB.cmake
@@ -212,6 +212,12 @@
   add_llvm_subdirectory(LLDB TOOL ${name})
 endmacro()
 
+macro(add_lldb_plugin_subdirectory name)
+  get_filename_component(plugin ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+  string(TOUPPER ${plugin} pluginUPPER)
+  add_llvm_subdirectory(LLDB "PLUGIN_${pluginUPPER}" ${name})
+endmacro()
+
 function(add_lldb_tool name)
   cmake_parse_arguments(ARG "ADD_TO_FRAMEWORK" "" "" ${ARGN})
   if(LLDB_BUILD_FRAMEWORK AND ARG_ADD_TO_FRAMEWORK)
Index: lldb/cmake/caches/Apple-lldb-macOS.cmake
===================================================================
--- lldb/cmake/caches/Apple-lldb-macOS.cmake
+++ lldb/cmake/caches/Apple-lldb-macOS.cmake
@@ -17,6 +17,19 @@
 # DESTDIR will be an extra prefix.
 set(LLDB_DEBUGINFO_INSTALL_PREFIX /debuginfo CACHE STRING "")
 
+# Disable platform plugins.
+set(LDB_PLUGIN_PLATFORM_ANDROID_BUILD OFF CACHE BOOL "")
+set(LDB_PLUGIN_PLATFORM_FREEBSD_BUILD OFF CACHE BOOL "")
+set(LDB_PLUGIN_PLATFORM_LINUX_BUILD OFF CACHE BOOL "")
+set(LDB_PLUGIN_PLATFORM_NETBSD_BUILD OFF CACHE BOOL "")
+set(LDB_PLUGIN_PLATFORM_OPENBSD_BUILD OFF CACHE BOOL "")
+set(LDB_PLUGIN_PLATFORM_WINDOWS_BUILD OFF CACHE BOOL "")
+
+# Disable symbol file formats.
+set(LDB_PLUGIN_SYMBOLFILE_BREAKPAD_BUILD OFF CACHE BOOL "")
+set(LDB_PLUGIN_SYMBOLFILE_NATIVEPDB_BUILD OFF CACHE BOOL "")
+set(LDB_PLUGIN_SYMBOLFILE_PDB_BUILD OFF CACHE BOOL "")
+
 set(LLVM_DISTRIBUTION_COMPONENTS
   lldb
   liblldb
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to