aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-04-15 15:27:49 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-04-21 13:19:58 +0200
commit4cde4075f97fc9f8d349591291289127666b35e5 (patch)
tree98a36dcfac8e46b11dfc27d38fcf33a8a5c41193 /build_scripts
parent3506158551488788450498f9b4ffe86375172fea (diff)
Build system: Make numpy centrally available
In order to be able to use numpy in PySide6 modules besides libshiboken, move the numpy detection into the build scripts and pass it as a CMake variable. Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: Ib30fdbab83904878286b7eaae1674ffba0f2febd Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'build_scripts')
-rw-r--r--build_scripts/main.py6
-rw-r--r--build_scripts/utils.py10
2 files changed, 15 insertions, 1 deletions
diff --git a/build_scripts/main.py b/build_scripts/main.py
index a059ea834..0f887a830 100644
--- a/build_scripts/main.py
+++ b/build_scripts/main.py
@@ -46,7 +46,7 @@ import sys
from textwrap import dedent
import time
from .config import config
-from .utils import get_python_dict
+from .utils import get_numpy_location, get_python_dict
from .options import DistUtilsCommandMixin, OPTION
from .versions import PYSIDE, PYSIDE_MODULE, SHIBOKEN
from .wheel_utils import (get_package_version, get_qt_version,
@@ -768,6 +768,10 @@ class PysideBuild(_build, DistUtilsCommandMixin):
if OPTION['AVOID_PROTECTED_HACK']:
cmake_cmd.append("-DAVOID_PROTECTED_HACK=1")
+ numpy = get_numpy_location()
+ if numpy:
+ cmake_cmd.append(f"-DNUMPY_INCLUDE_DIR={numpy}")
+
if self.build_type.lower() == 'debug':
cmake_cmd.append(f"-DPYTHON_DEBUG_LIBRARY={self.py_library}")
diff --git a/build_scripts/utils.py b/build_scripts/utils.py
index d80e59a3d..0a9036905 100644
--- a/build_scripts/utils.py
+++ b/build_scripts/utils.py
@@ -38,6 +38,7 @@
#############################################################################
import sys
+from pathlib import Path
import os
import re
import stat
@@ -83,6 +84,15 @@ def update_env_path(newpaths):
os.environ['PATH'] = f"{path}{os.pathsep}{os.environ['PATH']}"
+def get_numpy_location():
+ for p in sys.path:
+ if 'site-' in p:
+ numpy = Path(p).resolve() / 'numpy'
+ if numpy.is_dir():
+ return os.fspath(numpy / 'core' / 'include')
+ return None
+
+
def winsdk_setenv(platform_arch, build_type):
from distutils.msvc9compiler import VERSION as MSVC_VERSION
from distutils.msvc9compiler import Reg