Skip to content

Commit

Permalink
[Upstream] Fix swig python package path
Browse files Browse the repository at this point in the history
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

Change-Id: Ide4c809e00fa91feb47b899e9494d94773ae79e8
llvm-svn: 372047
  • Loading branch information
hhb committed Sep 16, 2019
1 parent fe11d50 commit 60aaffe
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions lldb/scripts/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,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
Expand Down

0 comments on commit 60aaffe

Please sign in to comment.