https://github.com/charles-zablit updated 
https://github.com/llvm/llvm-project/pull/196070

>From b210688f23bcb0b12e3d8e5c2adf9b40a8460b2f Mon Sep 17 00:00:00 2001
From: Charles Zablit <[email protected]>
Date: Wed, 6 May 2026 14:27:54 +0100
Subject: [PATCH 1/3] [lldb][windows] fix install-lldb target on Windows

---
 lldb/CMakeLists.txt | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index 0a1ca5cf391ef..3291e6621193a 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -165,6 +165,28 @@ if (LLDB_ENABLE_LUA)
   finish_swig_lua("lldb-lua" "${lldb_lua_bindings_dir}" "${LLDB_LUA_CPATH}")
 endif()
 
+set(lldb_runtime_install_deps)
+if(TARGET install-liblldb)
+  list(APPEND lldb_runtime_install_deps liblldb)
+endif()
+if(LLDB_ENABLE_PYTHON AND TARGET install-lldb-python-scripts)
+  list(APPEND lldb_runtime_install_deps lldb-python-scripts)
+endif()
+if(LLDB_ENABLE_LUA AND TARGET install-lldb-lua-library)
+  list(APPEND lldb_runtime_install_deps lldb-lua-library)
+endif()
+
+foreach(lldb_tool lldb lldb-dap)
+  foreach(dep ${lldb_runtime_install_deps})
+    if(TARGET install-${lldb_tool} AND TARGET install-${dep})
+      add_dependencies(install-${lldb_tool} install-${dep})
+    endif()
+    if(TARGET install-${lldb_tool}-stripped AND TARGET install-${dep}-stripped)
+      add_dependencies(install-${lldb_tool}-stripped install-${dep}-stripped)
+    endif()
+  endforeach()
+endforeach()
+
 set(LLDB_INCLUDE_UNITTESTS ON)
 if (NOT TARGET llvm_gtest)
   set(LLDB_INCLUDE_UNITTESTS OFF)

>From 2034139ceb1aab8e8ba583a9c11cdba140fca5ab Mon Sep 17 00:00:00 2001
From: Charles Zablit <[email protected]>
Date: Wed, 6 May 2026 17:06:13 +0100
Subject: [PATCH 2/3] fixup! [lldb][windows] fix install-lldb target on Windows

---
 lldb/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index 3291e6621193a..fe242e2c4d112 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -169,10 +169,10 @@ set(lldb_runtime_install_deps)
 if(TARGET install-liblldb)
   list(APPEND lldb_runtime_install_deps liblldb)
 endif()
-if(LLDB_ENABLE_PYTHON AND TARGET install-lldb-python-scripts)
+if(TARGET install-lldb-python-scripts)
   list(APPEND lldb_runtime_install_deps lldb-python-scripts)
 endif()
-if(LLDB_ENABLE_LUA AND TARGET install-lldb-lua-library)
+if(TARGET install-lldb-lua-library)
   list(APPEND lldb_runtime_install_deps lldb-lua-library)
 endif()
 

>From 0d1e1ca9a95d83bafee60c248005a4fe070fe534 Mon Sep 17 00:00:00 2001
From: Charles Zablit <[email protected]>
Date: Thu, 7 May 2026 11:48:26 +0100
Subject: [PATCH 3/3] fixup! [lldb][windows] fix install-lldb target on Windows

---
 lldb/CMakeLists.txt                 | 22 ------------------
 lldb/bindings/lua/CMakeLists.txt    |  9 ++++++++
 lldb/bindings/python/CMakeLists.txt |  9 ++++++++
 lldb/cmake/modules/AddLLDB.cmake    | 36 +++++++++++++++++++++++++++++
 4 files changed, 54 insertions(+), 22 deletions(-)

diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index fe242e2c4d112..0a1ca5cf391ef 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -165,28 +165,6 @@ if (LLDB_ENABLE_LUA)
   finish_swig_lua("lldb-lua" "${lldb_lua_bindings_dir}" "${LLDB_LUA_CPATH}")
 endif()
 
-set(lldb_runtime_install_deps)
-if(TARGET install-liblldb)
-  list(APPEND lldb_runtime_install_deps liblldb)
-endif()
-if(TARGET install-lldb-python-scripts)
-  list(APPEND lldb_runtime_install_deps lldb-python-scripts)
-endif()
-if(TARGET install-lldb-lua-library)
-  list(APPEND lldb_runtime_install_deps lldb-lua-library)
-endif()
-
-foreach(lldb_tool lldb lldb-dap)
-  foreach(dep ${lldb_runtime_install_deps})
-    if(TARGET install-${lldb_tool} AND TARGET install-${dep})
-      add_dependencies(install-${lldb_tool} install-${dep})
-    endif()
-    if(TARGET install-${lldb_tool}-stripped AND TARGET install-${dep}-stripped)
-      add_dependencies(install-${lldb_tool}-stripped install-${dep}-stripped)
-    endif()
-  endforeach()
-endforeach()
-
 set(LLDB_INCLUDE_UNITTESTS ON)
 if (NOT TARGET llvm_gtest)
   set(LLDB_INCLUDE_UNITTESTS OFF)
diff --git a/lldb/bindings/lua/CMakeLists.txt b/lldb/bindings/lua/CMakeLists.txt
index 677a07044c2af..0274f08ce7914 100644
--- a/lldb/bindings/lua/CMakeLists.txt
+++ b/lldb/bindings/lua/CMakeLists.txt
@@ -64,6 +64,15 @@ function(finish_swig_lua swig_target lldb_lua_bindings_dir 
lldb_lua_target_dir)
     add_llvm_install_targets(${lldb_lua_library_install_target}
                             COMPONENT ${lldb_lua_library_target}
                             DEPENDS ${lldb_lua_library_target})
+    # Tools that link liblldb need the lua bindings installed alongside.
+    foreach(tool lldb lldb-dap)
+      if(TARGET install-${tool})
+        add_dependencies(install-${tool} ${lldb_lua_library_install_target})
+      endif()
+      if(TARGET install-${tool}-stripped AND TARGET 
${lldb_lua_library_install_target}-stripped)
+        add_dependencies(install-${tool}-stripped 
${lldb_lua_library_install_target}-stripped)
+      endif()
+    endforeach()
   endif()
 endfunction()
 
diff --git a/lldb/bindings/python/CMakeLists.txt 
b/lldb/bindings/python/CMakeLists.txt
index 04457dfd32e3c..6e7c3e52709fe 100644
--- a/lldb/bindings/python/CMakeLists.txt
+++ b/lldb/bindings/python/CMakeLists.txt
@@ -187,6 +187,15 @@ function(finish_swig_python swig_target 
lldb_python_bindings_dir lldb_python_tar
     add_llvm_install_targets(${python_scripts_install_target}
                              COMPONENT ${python_scripts_target}
                              DEPENDS ${python_scripts_target})
+    # Tools that link liblldb need the python scripts installed alongside.
+    foreach(tool lldb lldb-dap)
+      if(TARGET install-${tool})
+        add_dependencies(install-${tool} ${python_scripts_install_target})
+      endif()
+      if(TARGET install-${tool}-stripped AND TARGET 
${python_scripts_install_target}-stripped)
+        add_dependencies(install-${tool}-stripped 
${python_scripts_install_target}-stripped)
+      endif()
+    endforeach()
   endif()
 
   # Add a Post-Build Event to copy the custom Python DLL to the lldb binaries 
dir so that Windows can find it when launching
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake
index 93b6bd2740abb..a04e16a2ba105 100644
--- a/lldb/cmake/modules/AddLLDB.cmake
+++ b/lldb/cmake/modules/AddLLDB.cmake
@@ -36,6 +36,30 @@ function(lldb_tablegen)
   endif()
 endfunction(lldb_tablegen)
 
+# Returns TRUE in `out_var` if any of `libs` is `liblldb` or already carries
+# the LLDB_LINKS_LIBLLDB property.
+function(_lldb_links_liblldb_check out_var libs)
+  set(${out_var} FALSE PARENT_SCOPE)
+  foreach(lib ${libs})
+    if("${lib}" STREQUAL "liblldb")
+      set(${out_var} TRUE PARENT_SCOPE)
+      return()
+    endif()
+    if(TARGET "${lib}")
+      get_target_property(_p "${lib}" LLDB_LINKS_LIBLLDB)
+      if(_p)
+        set(${out_var} TRUE PARENT_SCOPE)
+        return()
+      endif()
+    endif()
+  endforeach()
+endfunction()
+
+function(_lldb_propagate_links_liblldb name libs)
+  _lldb_links_liblldb_check(_links_liblldb "${libs}")
+  set_target_properties(${name} PROPERTIES LLDB_LINKS_LIBLLDB 
${_links_liblldb})
+endfunction()
+
 function(add_lldb_library name)
   include_directories(BEFORE
     ${CMAKE_CURRENT_BINARY_DIR}
@@ -95,6 +119,9 @@ function(add_lldb_library name)
     ${pass_NO_INSTALL_RPATH}
   )
 
+  # Mark whether this library transitively pulls in liblldb.
+  _lldb_propagate_links_liblldb(${name} "${PARAM_LINK_LIBS}")
+
   if(CLANG_LINK_CLANG_DYLIB)
     target_link_libraries(${name} PRIVATE clang-cpp)
   else()
@@ -220,6 +247,15 @@ function(add_lldb_executable name)
       add_llvm_install_targets(install-${name}
                                DEPENDS ${name}
                                COMPONENT ${name})
+      # An installed tool that links liblldb won't run without liblldb
+      # installed alongside it.
+      _lldb_links_liblldb_check(_links_liblldb "${ARG_LINK_LIBS}")
+      if(_links_liblldb AND TARGET install-liblldb)
+        add_dependencies(install-${name} install-liblldb)
+        if(TARGET install-${name}-stripped AND TARGET install-liblldb-stripped)
+          add_dependencies(install-${name}-stripped install-liblldb-stripped)
+        endif()
+      endif()
     endif()
     if(APPLE AND ARG_INSTALL_PREFIX)
       lldb_add_post_install_steps_darwin(${name} ${ARG_INSTALL_PREFIX})

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to