From 5a115e81cdd40c758b10c382aeffc0c8de6930e2 Mon Sep 17 00:00:00 2001 From: Haibo Huang Date: Mon, 16 Sep 2019 23:31:16 +0000 Subject: [PATCH] Fix swig python package path Summary: The path defined in CMakeLists.txt doesn't match the path generated in our python script. This change fixes that. LLVM_LIBRARY_OUTPUT_INTDIR is defined as: ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) On the other hand, the path of site-package is generaged in get_framework_python_dir_windows() in finishSwigPythonLLDB.py as: (Dispite its name, the function is used for everything other than xcode) prefix/cmakeBuildConfiguration/distutils.sysconfig.get_python_lib() From lldb/CMakeLists.txt, we can see that: prefix=${CMAKE_BINARY_DIR}, cmakeBuildConfiguration=${CMAKE_CFG_INTDIR} And from python source code, we can see get_python_lib() always returns lib/pythonx.y/site-packages for posix, or Lib/site-packages for windows: https://github.com/python/cpython/blob/3.8/Lib/distutils/sysconfig.py#L128 We should make them match each other. Subscribers: mgorny, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D67583 llvm-svn: 372047 --- lldb/scripts/CMakeLists.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lldb/scripts/CMakeLists.txt b/lldb/scripts/CMakeLists.txt index 1a0ea96..9de96ef 100644 --- a/lldb/scripts/CMakeLists.txt +++ b/lldb/scripts/CMakeLists.txt @@ -42,13 +42,15 @@ add_custom_target(swig_wrapper ALL DEPENDS ) if(NOT LLDB_BUILD_FRAMEWORK) - if(CMAKE_SYSTEM_NAME MATCHES "Windows") - set(swig_python_subdir site-packages) + # The path here should match the result of python function + # distutils.sysconfig.get_python_lib(). + if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") + set(swig_python_subdir Lib/site-packages) else() - set(swig_python_subdir python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}) + set(swig_python_subdir lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}) endif() - set(SWIG_PYTHON_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${swig_python_subdir}) + set(SWIG_PYTHON_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${swig_python_subdir}) set(SWIG_INSTALL_DIR lib${LLVM_LIBDIR_SUFFIX}) # Install the LLDB python module -- 2.7.4