diff options
| -rw-r--r-- | build_scripts/platforms/linux.py | 30 | ||||
| -rw-r--r-- | build_scripts/platforms/macos.py | 19 | ||||
| -rw-r--r-- | build_scripts/platforms/unix.py | 7 | ||||
| -rw-r--r-- | build_scripts/platforms/windows_desktop.py | 15 | ||||
| -rw-r--r-- | build_scripts/utils.py | 23 |
5 files changed, 48 insertions, 46 deletions
diff --git a/build_scripts/platforms/linux.py b/build_scripts/platforms/linux.py index 9ea1993c6..c99a6e925 100644 --- a/build_scripts/platforms/linux.py +++ b/build_scripts/platforms/linux.py @@ -30,9 +30,9 @@ def prepare_standalone_package_linux(pyside_build, _vars, cross_build=False): should_copy_icu_libs = False # <qt>/lib/* -> <setup>/{st_package_name}/Qt/lib - destination_dir = "{st_build_dir}/{st_package_name}".format(**_vars) - destination_qt_dir = f"{destination_dir}/Qt" - destination_qt_lib_dir = f"{destination_qt_dir}/lib" + destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars)) + destination_qt_dir = destination_dir / "Qt" + destination_qt_lib_dir = destination_qt_dir / "lib" accepted_modules = ['libQt6*.so.?'] if constrain_modules: @@ -64,14 +64,14 @@ def prepare_standalone_package_linux(pyside_build, _vars, cross_build=False): # Patching designer to use the Qt libraries provided in the wheel if config.is_internal_pyside_build() and not OPTION['NO_QT_TOOLS']: - assistant_path = f"{destination_dir}/assistant" + assistant_path = destination_dir / "assistant" linux_patch_executable(pyside_build._patchelf_path, assistant_path) - designer_path = f"{destination_dir}/designer" + designer_path = destination_dir / "designer" linux_patch_executable(pyside_build._patchelf_path, designer_path) if pyside_build.is_webengine_built(built_modules): copydir("{qt_data_dir}/resources", - f"{destination_qt_dir}/resources", + destination_qt_dir / "resources", _filter=None, recursive=False, _vars=_vars) @@ -79,25 +79,25 @@ def prepare_standalone_package_linux(pyside_build, _vars, cross_build=False): if copy_plugins: is_pypy = "pypy" in pyside_build.build_classifiers # <qt>/plugins/* -> <setup>/{st_package_name}/Qt/plugins - plugins_target = f"{destination_qt_dir}/plugins" + plugins_target = destination_qt_dir / "plugins" copydir("{qt_plugins_dir}", plugins_target, _filter=["*.so"], recursive=True, _vars=_vars) if not is_pypy: copydir("{install_dir}/plugins/designer", - f"{plugins_target}/designer", + plugins_target / "designer", _filter=["*.so"], recursive=False, _vars=_vars) copied_plugins = pyside_build.get_shared_libraries_in_path_recursively( - plugins_target.format(**_vars)) + os.fspath(plugins_target)) pyside_build.update_rpath_for_linux_plugins(copied_plugins) if copy_qml: # <qt>/qml/* -> <setup>/{st_package_name}/Qt/qml - qml_plugins_target = f"{destination_qt_dir}/qml" + qml_plugins_target = destination_qt_dir / "qml" copydir("{qt_qml_dir}", qml_plugins_target, _filter=None, @@ -106,7 +106,7 @@ def prepare_standalone_package_linux(pyside_build, _vars, cross_build=False): ignore=["*.debug"], _vars=_vars) copied_plugins = pyside_build.get_shared_libraries_in_path_recursively( - qml_plugins_target) + os.fspath(qml_plugins_target)) pyside_build.update_rpath_for_linux_plugins( copied_plugins, qt_lib_dir=destination_qt_lib_dir, @@ -116,15 +116,15 @@ def prepare_standalone_package_linux(pyside_build, _vars, cross_build=False): # <qt>/translations/* -> # <setup>/{st_package_name}/Qt/translations copydir("{qt_translations_dir}", - f"{destination_qt_dir}/translations", + destination_qt_dir / "translations", _filter=["*.qm", "*.pak"], force=False, _vars=_vars) if copy_qt_conf: # Copy the qt.conf file to libexec. - qt_libexec_path = Path(destination_qt_dir) / "libexec" + qt_libexec_path = destination_qt_dir / "libexec" if not qt_libexec_path.is_dir(): - os.makedirs(qt_libexec_path) + qt_libexec_path.mkdir(parents=True) copyfile(f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/qt.conf", - str(qt_libexec_path), _vars=_vars) + qt_libexec_path, _vars=_vars) diff --git a/build_scripts/platforms/macos.py b/build_scripts/platforms/macos.py index 83511db0c..dc76bbeb5 100644 --- a/build_scripts/platforms/macos.py +++ b/build_scripts/platforms/macos.py @@ -30,9 +30,9 @@ def prepare_standalone_package_macos(pyside_build, _vars): copy_translations = True copy_qt_conf = True - destination_dir = "{st_build_dir}/{st_package_name}".format(**_vars) - destination_qt_dir = f"{destination_dir}/Qt" - destination_qt_lib_dir = f"{destination_qt_dir}/lib" + destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars)) + destination_qt_dir = destination_dir / "Qt" + destination_qt_lib_dir = destination_qt_dir / "lib" if config.is_internal_shiboken_generator_build(): constrain_modules = ["Core", "Network", "Xml", "XmlPatterns"] @@ -109,11 +109,10 @@ def prepare_standalone_package_macos(pyside_build, _vars): # from Versions/5/Helpers, thus adding two more levels of # directory hierarchy. if pyside_build.is_webengine_built(built_modules): - qt_lib_path = Path(destination_qt_lib_dir) bundle = Path("QtWebEngineCore.framework/Helpers/") / "QtWebEngineProcess.app" binary = "Contents/MacOS/QtWebEngineProcess" webengine_process_path = bundle / binary - final_path = qt_lib_path / webengine_process_path + final_path = destination_qt_lib_dir / webengine_process_path rpath = "@loader_path/../../../../../" macos_fix_rpaths_for_library(final_path, rpath) else: @@ -132,7 +131,7 @@ def prepare_standalone_package_macos(pyside_build, _vars): if pyside_build.is_webengine_built(built_modules): copydir("{qt_data_dir}/resources", - f"{destination_qt_dir}/resources", + destination_qt_dir / "resources", _filter=None, recursive=False, _vars=_vars) @@ -155,7 +154,7 @@ def prepare_standalone_package_macos(pyside_build, _vars): if copy_plugins: is_pypy = "pypy" in pyside_build.build_classifiers # <qt>/plugins/* -> <setup>/{st_package_name}/Qt/plugins - plugins_target = f"{destination_qt_dir}/plugins" + plugins_target = destination_qt_dir / "plugins" filters = ["*.dylib"] copydir("{qt_plugins_dir}", plugins_target, _filter=filters, @@ -165,14 +164,14 @@ def prepare_standalone_package_macos(pyside_build, _vars): _vars=_vars) if not is_pypy: copydir("{install_dir}/plugins/designer", - f"{plugins_target}/designer", + plugins_target / "designer", _filter=filters, recursive=False, _vars=_vars) if copy_qml: # <qt>/qml/* -> <setup>/{st_package_name}/Qt/qml - copydir("{qt_qml_dir}", f"{destination_qt_dir}/qml", + copydir("{qt_qml_dir}", destination_qt_dir / "qml", _filter=None, recursive=True, force=False, @@ -183,7 +182,7 @@ def prepare_standalone_package_macos(pyside_build, _vars): if copy_translations: # <qt>/translations/* -> # <setup>/{st_package_name}/Qt/translations - copydir("{qt_translations_dir}", f"{destination_qt_dir}/translations", + copydir("{qt_translations_dir}", destination_qt_dir / "translations", _filter=["*.qm", "*.pak"], force=False, _vars=_vars) diff --git a/build_scripts/platforms/unix.py b/build_scripts/platforms/unix.py index 9496b7747..1879f3072 100644 --- a/build_scripts/platforms/unix.py +++ b/build_scripts/platforms/unix.py @@ -43,9 +43,8 @@ def prepare_packages_posix(pyside_build, _vars, cross_build=False): executables = [] libexec_executables = [] - destination_dir = "{st_build_dir}/{st_package_name}".format(**_vars) - destination_qt_dir = f"{destination_dir}/Qt" - destination_qt_lib_dir = f"{destination_qt_dir}/lib" + destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars)) + destination_qt_dir = destination_dir / "Qt" # <install>/lib/site-packages/{st_package_name}/* -> # <setup>/{st_package_name} @@ -151,7 +150,7 @@ def prepare_packages_posix(pyside_build, _vars, cross_build=False): lib_exec_filters.append('QtWebEngineProcess') if lib_exec_filters: libexec_executables.extend(copydir("{qt_lib_execs_dir}", - f"{destination_qt_dir}/libexec", + destination_qt_dir / "libexec", _filter=lib_exec_filters, recursive=False, _vars=_vars)) diff --git a/build_scripts/platforms/windows_desktop.py b/build_scripts/platforms/windows_desktop.py index 5a6508ea0..adb0680cd 100644 --- a/build_scripts/platforms/windows_desktop.py +++ b/build_scripts/platforms/windows_desktop.py @@ -20,9 +20,8 @@ def prepare_packages_win32(pyside_build, _vars): if (pyside_build.debug or pyside_build.build_type == 'RelWithDebInfo') and copy_pdbs: pdbs = ['*.pdb'] - destination_dir = "{st_build_dir}/{st_package_name}".format(**_vars) + destination_dir = Path("{st_build_dir}/{st_package_name}".format(**_vars)) destination_qt_dir = destination_dir - destination_qt_lib_dir = f"{destination_qt_dir}/lib" # <install>/lib/site-packages/{st_package_name}/* -> # <setup>/{st_package_name} @@ -94,7 +93,7 @@ def prepare_packages_win32(pyside_build, _vars): # <install>/include/* -> <setup>/{st_package_name}/include copydir( "{install_dir}/include/{cmake_package_name}", - f"{destination_dir}/include", + destination_dir / "include", _vars=_vars) if config.is_internal_pyside_build(): @@ -143,21 +142,21 @@ def prepare_packages_win32(pyside_build, _vars): # <setup>/{st_package_name}/typesystems copydir( "{install_dir}/share/{st_package_name}/typesystems", - f"{destination_dir}/typesystems", + destination_dir / "typesystems", _vars=_vars) # <install>/share/{st_package_name}/glue/* -> # <setup>/{st_package_name}/glue copydir( "{install_dir}/share/{st_package_name}/glue", - f"{destination_dir}/glue", + destination_dir / "glue", _vars=_vars) # <source>/pyside6/{st_package_name}/support/* -> # <setup>/{st_package_name}/support/* copydir( f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/support", - f"{destination_dir}/support", + destination_dir / "support", _vars=_vars) # <source>/pyside6/{st_package_name}/*.pyi -> @@ -179,12 +178,12 @@ def prepare_packages_win32(pyside_build, _vars): return True # examples/* -> <setup>/{st_package_name}/examples copydir(Path(pyside_build.script_dir) / "examples", - f"{destination_dir}/examples", + destination_dir / "examples", force=False, _vars=_vars, dir_filter_function=pycache_dir_filter) if _vars['ssl_libs_dir']: # <ssl_libs>/* -> <setup>/{st_package_name}/openssl - copydir("{ssl_libs_dir}", f"{destination_dir}/openssl", + copydir("{ssl_libs_dir}", destination_dir / "openssl", _filter=[ "libeay32.dll", "ssleay32.dll"], diff --git a/build_scripts/utils.py b/build_scripts/utils.py index b79c2294f..8cd947b32 100644 --- a/build_scripts/utils.py +++ b/build_scripts/utils.py @@ -251,12 +251,12 @@ def platform_cmake_options(as_tuple_list=False): def copyfile(src, dst, force=True, _vars=None, force_copy_symlink=False, make_writable_by_owner=False): - if _vars is not None: - src = Path(str(src).format(**_vars)) - dst = Path(str(dst).format(**_vars)) - else: - src = Path(src) - dst = Path(dst) + if isinstance(src, str): + src = Path(src.format(**_vars)) if _vars else Path(src) + if isinstance(dst, str): + dst = Path(dst.format(**_vars)) if _vars else Path(dst) + assert(isinstance(src, Path)) + assert(isinstance(dst, Path)) if not src.exists() and not force: log.info(f"**Skipping copy file\n {src} to\n {dst}\n Source does not exist") @@ -327,9 +327,14 @@ def makefile(dst, content=None, _vars=None): def copydir(src, dst, _filter=None, ignore=None, force=True, recursive=True, _vars=None, dir_filter_function=None, file_filter_function=None, force_copy_symlinks=False): + if isinstance(src, str): + src = Path(src.format(**_vars)) if _vars else Path(src) + if isinstance(dst, str): + dst = Path(dst.format(**_vars)) if _vars else Path(dst) + assert(isinstance(src, Path)) + assert(isinstance(dst, Path)) + if _vars is not None: - src = Path(str(src).format(**_vars)) - dst = Path(str(dst).format(**_vars)) if _filter is not None: _filter = [i.format(**_vars) for i in _filter] if ignore is not None: @@ -1404,6 +1409,6 @@ def copy_qt_metatypes(destination_qt_dir, _vars): 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}", + copydir(qt_meta_types_dir, destination_qt_dir / rel_meta_data_dir, _filter=["*.json"], recursive=False, _vars=_vars, force_copy_symlinks=True) |
