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 1e380365abb12d1266763ac9f39d95a9a36eef5d Mon Sep 17 00:00:00 2001 From: Charles Zablit <[email protected]> Date: Thu, 7 May 2026 11:48:07 +0100 Subject: [PATCH 3/3] fixup! 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
