diff options
-rw-r--r-- | build_scripts/main.py | 1 | ||||
-rw-r--r-- | build_scripts/platforms/unix.py | 7 | ||||
-rw-r--r-- | build_scripts/platforms/windows_desktop.py | 9 | ||||
-rw-r--r-- | build_scripts/qtinfo.py | 13 | ||||
-rw-r--r-- | build_scripts/utils.py | 10 |
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) |