aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build_scripts/main.py1
-rw-r--r--build_scripts/platforms/unix.py7
-rw-r--r--build_scripts/platforms/windows_desktop.py9
-rw-r--r--build_scripts/qtinfo.py13
-rw-r--r--build_scripts/utils.py10
5 files changed, 29 insertions, 11 deletions
diff --git a/build_scripts/main.py b/build_scripts/main.py
index 4660c9879..7d3073da9 100644
--- a/build_scripts/main.py
+++ b/build_scripts/main.py
@@ -901,6 +901,7 @@ class PysideBuild(_build, CommandMixin, BuildInfoCollectorMixin):
"qt_data_dir": self.qtinfo.data_dir,
"qt_doc_dir": self.qtinfo.docs_dir,
"qt_lib_dir": self.qtinfo.libs_dir,
+ "qt_metatypes_dir": self.qtinfo.metatypes_dir,
"qt_lib_execs_dir": self.qtinfo.lib_execs_dir,
"qt_plugins_dir": self.qtinfo.plugins_dir,
"qt_prefix_dir": self.qtinfo.prefix_dir,
diff --git a/build_scripts/platforms/unix.py b/build_scripts/platforms/unix.py
index 6b6345d6b..9496b7747 100644
--- a/build_scripts/platforms/unix.py
+++ b/build_scripts/platforms/unix.py
@@ -8,7 +8,7 @@ from pathlib import Path
from ..config import config
from ..options import OPTION
-from ..utils import copydir, copyfile, makefile
+from ..utils import copydir, copyfile, copy_qt_metatypes, makefile
from .. import PYSIDE, SHIBOKEN
from .linux import prepare_standalone_package_linux
from .macos import prepare_standalone_package_macos
@@ -143,10 +143,7 @@ def prepare_packages_posix(pyside_build, _vars, cross_build=False):
executables.extend(_copy_gui_executable('designer', _vars=_vars))
executables.extend(_copy_gui_executable('linguist', _vars=_vars))
- # <qt>/lib/metatypes/* -> <setup>/{st_package_name}/Qt/lib/metatypes
- copydir("{qt_lib_dir}/metatypes", f"{destination_qt_lib_dir}/metatypes",
- _filter=["*.json"],
- recursive=False, _vars=_vars, force_copy_symlinks=True)
+ copy_qt_metatypes(destination_qt_dir, _vars)
# Copy libexec
built_modules = pyside_build.get_built_pyside_config(_vars)['built_modules']
diff --git a/build_scripts/platforms/windows_desktop.py b/build_scripts/platforms/windows_desktop.py
index 40c245b7a..5a6508ea0 100644
--- a/build_scripts/platforms/windows_desktop.py
+++ b/build_scripts/platforms/windows_desktop.py
@@ -8,8 +8,8 @@ import os
from pathlib import Path
from ..config import config
from ..options import OPTION
-from ..utils import (copydir, copyfile, download_and_extract_7z, filter_match,
- makefile)
+from ..utils import (copydir, copyfile, copy_qt_metatypes,
+ download_and_extract_7z, filter_match, makefile)
from .. import PYSIDE, SHIBOKEN
@@ -131,10 +131,7 @@ def prepare_packages_win32(pyside_build, _vars):
_filter=filters,
recursive=False, _vars=_vars)
- # <qt>/lib/metatypes/* -> <setup>/{st_package_name}/lib/metatypes
- copydir("{qt_lib_dir}/metatypes", destination_qt_lib_dir,
- _filter=["*.json"],
- recursive=False, _vars=_vars)
+ copy_qt_metatypes(destination_qt_dir, _vars)
# <install>/lib/*.lib -> {st_package_name}/
copydir(
diff --git a/build_scripts/qtinfo.py b/build_scripts/qtinfo.py
index c63fc77f2..6424b9e0d 100644
--- a/build_scripts/qtinfo.py
+++ b/build_scripts/qtinfo.py
@@ -58,6 +58,10 @@ class QtInfo(object):
return self.get_property("QT_VERSION")
@property
+ def version_tuple(self):
+ return tuple(map(int, self.version.split(".")))
+
+ @property
def bins_dir(self):
return self.get_property("QT_INSTALL_BINS")
@@ -70,6 +74,11 @@ class QtInfo(object):
return self.get_property("QT_INSTALL_LIBS")
@property
+ def metatypes_dir(self):
+ parent = self.arch_data if self.version_tuple >= (6, 5, 0) else self.libs_dir
+ return os.fspath(Path(parent) / "metatypes")
+
+ @property
def lib_execs_dir(self):
return self.get_property("QT_INSTALL_LIBEXECS")
@@ -82,6 +91,10 @@ class QtInfo(object):
return self.get_property("QT_INSTALL_PREFIX")
@property
+ def arch_data(self):
+ return self.get_property("QT_INSTALL_ARCHDATA")
+
+ @property
def imports_dir(self):
return self.get_property("QT_INSTALL_IMPORTS")
diff --git a/build_scripts/utils.py b/build_scripts/utils.py
index d8673c2e0..23723dc96 100644
--- a/build_scripts/utils.py
+++ b/build_scripts/utils.py
@@ -1399,3 +1399,13 @@ def find_qt_install_path() -> Path:
raise RuntimeError("qtpaths not found")
else:
return qtpaths.parents[1]
+
+def copy_qt_metatypes(destination_qt_dir, _vars):
+ """Copy the Qt metatypes files which changed location in 6.5"""
+ # <qt>/[lib]?/metatypes/* -> <setup>/{st_package_name}/Qt/[lib]?/metatypes
+ qt_meta_types_dir = "{qt_metatypes_dir}".format(**_vars)
+ qt_prefix_dir = "{qt_prefix_dir}".format(**_vars)
+ rel_meta_data_dir = os.fspath(Path(qt_meta_types_dir).relative_to(qt_prefix_dir))
+ copydir(qt_meta_types_dir, f"{destination_qt_dir}/{rel_meta_data_dir}",
+ _filter=["*.json"],
+ recursive=False, _vars=_vars, force_copy_symlinks=True)