diff options
-rw-r--r-- | build_scripts/main.py | 8 | ||||
-rw-r--r-- | sources/pyside2/tests/pysidetest/CMakeLists.txt | 9 | ||||
-rw-r--r-- | sources/shiboken2/data/shiboken_helpers.cmake | 3 |
3 files changed, 17 insertions, 3 deletions
diff --git a/build_scripts/main.py b/build_scripts/main.py index 5f536792a..f853bc899 100644 --- a/build_scripts/main.py +++ b/build_scripts/main.py @@ -527,7 +527,13 @@ class PysideBuild(_build): self.py_scripts_dir = py_scripts_dir if py_libdir is None or not os.path.exists(py_libdir): if sys.platform == "win32": - py_libdir = os.path.join(py_prefix, "libs") + # For virtual environments on Windows, the py_prefix will contain a path pointing + # to it, instead of the system Python installation path. + # Since INCLUDEPY contains a path to the system location, we use the same base + # directory to define the py_libdir variable. + py_libdir = os.path.join(os.path.dirname(py_include_dir), "libs") + if not os.path.isdir(py_libdir): + raise DistutilsSetupError("Failed to locate the 'libs' directory") else: py_libdir = os.path.join(py_prefix, "lib") if py_include_dir is None or not os.path.exists(py_include_dir): diff --git a/sources/pyside2/tests/pysidetest/CMakeLists.txt b/sources/pyside2/tests/pysidetest/CMakeLists.txt index 3c993cf4e..6c100475b 100644 --- a/sources/pyside2/tests/pysidetest/CMakeLists.txt +++ b/sources/pyside2/tests/pysidetest/CMakeLists.txt @@ -106,10 +106,17 @@ set_property(TARGET testbinding PROPERTY OUTPUT_NAME "testbinding${SHIBOKEN_PYTH if(WIN32) set_property(TARGET testbinding PROPERTY SUFFIX ".pyd") endif() + +if(PYTHON_LIMITED_API) + set(TESTBINDING_PYTHON_LIBS ${PYTHON_LIMITED_LIBRARIES}) +else() + set(TESTBINDING_PYTHON_LIBS ${PYTHON_LIBRARIES}) +endif() + target_link_libraries(testbinding pysidetest pyside2 - ${PYTHON_LIBRARIES} + ${TESTBINDING_PYTHON_LIBS} Shiboken2::libshiboken ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} diff --git a/sources/shiboken2/data/shiboken_helpers.cmake b/sources/shiboken2/data/shiboken_helpers.cmake index f4dd4d5dc..780509f58 100644 --- a/sources/shiboken2/data/shiboken_helpers.cmake +++ b/sources/shiboken2/data/shiboken_helpers.cmake @@ -13,8 +13,9 @@ macro(shiboken_check_if_limited_api) # On other platforms, this result is not used at all. execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "if True: + import os for lib in '${PYTHON_LIBRARIES}'.split(';'): - if '/' in lib: + if '/' in lib and os.path.isfile(lib): prefix, py = lib.rsplit('/', 1) if py.startswith('python3'): print(prefix + '/python3.lib') |