forked from OSchip/llvm-project
[lldb] [cmake] Fix installing Python modules on systems using /usr/lib
Fix installing Python modules on systems that use /usr/lib for Python while installing other libraries in /usr/lib64. Rewrite CMake logic to query correct directories from Python, similarly to how prepare_binding_Python.py does it. Furthermore, change the regex used in get_relative_lib_dir.py to allow 'lib' without suffix. I think that the code can be further improved but I'd like to take this enterprise in smaller steps in case one of them breaks something. Differential Revision: https://reviews.llvm.org/D67890 llvm-svn: 372835
This commit is contained in:
parent
286860986e
commit
7efca81f7d
|
@ -42,15 +42,18 @@ add_custom_target(swig_wrapper ALL DEPENDS
|
|||
)
|
||||
|
||||
if(NOT LLDB_BUILD_FRAMEWORK)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
set(swig_python_subdir site-packages)
|
||||
else()
|
||||
set(swig_python_subdir python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
|
||||
endif()
|
||||
|
||||
set(SWIG_PYTHON_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${swig_python_subdir})
|
||||
set(SWIG_INSTALL_DIR lib${LLVM_LIBDIR_SUFFIX})
|
||||
execute_process(
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
-c "import distutils.sysconfig, sys; print(distutils.sysconfig.get_python_lib(True, False, sys.argv[1]))"
|
||||
${CMAKE_BINARY_DIR}
|
||||
OUTPUT_VARIABLE SWIG_PYTHON_DIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
-c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(True, False, ''))"
|
||||
OUTPUT_VARIABLE SWIG_INSTALL_DIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
# Install the LLDB python module
|
||||
install(DIRECTORY ${SWIG_PYTHON_DIR} DESTINATION ${SWIG_INSTALL_DIR})
|
||||
install(DIRECTORY ${SWIG_PYTHON_DIR}/ DESTINATION ${SWIG_INSTALL_DIR})
|
||||
endif()
|
||||
|
|
|
@ -23,7 +23,7 @@ def get_python_relative_libdir():
|
|||
# right answer always.
|
||||
arch_specific_libdir = distutils.sysconfig.get_python_lib(True, False)
|
||||
split_libdir = arch_specific_libdir.split(os.sep)
|
||||
lib_re = re.compile(r"^lib.+$")
|
||||
lib_re = re.compile(r"^lib.*$")
|
||||
|
||||
for i in range(len(split_libdir)):
|
||||
match = lib_re.match(split_libdir[i])
|
||||
|
|
Loading…
Reference in New Issue