diff --git a/lldb/source/API/CMakeLists.txt b/lldb/source/API/CMakeLists.txt --- a/lldb/source/API/CMakeLists.txt +++ b/lldb/source/API/CMakeLists.txt @@ -111,6 +111,19 @@ ${option_install_prefix} ) +# lib/pythonX.Y/dist-packages/lldb/_lldb.so is a symlink to lib/liblldb.so . +# Add an additional rpath \$ORIGIN/../../../../lib so that _lldb.so can be +# loaded from Python. +if(LLDB_ENABLE_PYTHON AND BUILD_SHARED_LIBS AND UNIX) + if(LLVM_INSTALL_PREFIX AND NOT (LLVM_INSTALL_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)) + set(extra_libdir ${LLVM_LIBRARY_DIR}) + elseif(LLVM_BUILD_LIBRARY_DIR) + set(extra_libdir ${LLVM_LIBRARY_DIR}) + endif() + set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + set_target_properties(liblldb PROPERTIES INSTALL_RPATH "${_install_rpath}") +endif() + if (MSVC) set_source_files_properties(SBReproducer.cpp PROPERTIES COMPILE_FLAGS /bigobj) endif()