diff options
Diffstat (limited to 'build_scripts')
-rw-r--r-- | build_scripts/main.py | 9 | ||||
-rw-r--r-- | build_scripts/platforms/linux.py | 16 | ||||
-rw-r--r-- | build_scripts/platforms/macos.py | 11 | ||||
-rw-r--r-- | build_scripts/platforms/unix.py | 23 |
4 files changed, 32 insertions, 27 deletions
diff --git a/build_scripts/main.py b/build_scripts/main.py index 6f80d8dc4..a7afa6c7b 100644 --- a/build_scripts/main.py +++ b/build_scripts/main.py @@ -1085,7 +1085,10 @@ class PysideBuild(_build, DistUtilsCommandMixin): raise RuntimeError("Error copying libclang library " f"from {clang_lib_path} to {destination_dir}. ") - def update_rpath(self, package_path, executables): + def update_rpath(self, package_path, executables, libexec=False): + ROOT = '@loader_path' if sys.platform == 'darwin' else '$ORIGIN' + QT_PATH = '/../lib' if libexec else '/Qt/lib' + if sys.platform.startswith('linux'): pyside_libs = [lib for lib in os.listdir( package_path) if filter_match(lib, ["*.so", "*.so.*"])] @@ -1101,7 +1104,7 @@ class PysideBuild(_build, DistUtilsCommandMixin): # installed qt lib directory. final_rpath = self.qtinfo.libs_dir if OPTION["STANDALONE"]: - final_rpath = "$ORIGIN/Qt/lib" + final_rpath = f'{ROOT}{QT_PATH}' override = OPTION["STANDALONE"] linux_fix_rpaths_for_library(self._patchelf_path, srcpath, final_rpath, override=override) @@ -1118,7 +1121,7 @@ class PysideBuild(_build, DistUtilsCommandMixin): final_rpath = OPTION["RPATH_VALUES"] else: if OPTION["STANDALONE"]: - final_rpath = "@loader_path/Qt/lib" + final_rpath = f'{ROOT}{QT_PATH}' else: final_rpath = self.qtinfo.libs_dir macos_fix_rpaths_for_library(srcpath, final_rpath) diff --git a/build_scripts/platforms/linux.py b/build_scripts/platforms/linux.py index cbd47070d..092660072 100644 --- a/build_scripts/platforms/linux.py +++ b/build_scripts/platforms/linux.py @@ -37,6 +37,7 @@ ## ############################################################################# +import os from ..utils import (copydir, copyfile, copy_icu_libs, find_files_using_glob, linux_patch_executable) from ..config import config @@ -96,12 +97,6 @@ def prepare_standalone_package_linux(self, vars): linux_patch_executable(self._patchelf_path, designer_path) if self.is_webengine_built(built_modules): - copydir("{qt_lib_execs_dir}", - "{st_build_dir}/{st_package_name}/Qt/libexec", - filter=None, - recursive=False, - vars=vars) - copydir("{qt_prefix_dir}/resources", "{st_build_dir}/{st_package_name}/Qt/resources", filter=None, @@ -142,7 +137,8 @@ def prepare_standalone_package_linux(self, vars): if copy_qt_conf: # Copy the qt.conf file to libexec. - copyfile( - f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/qt.conf", - "{st_build_dir}/{st_package_name}/Qt/libexec", - vars=vars) + qt_libexec_path = "{st_build_dir}/{st_package_name}/Qt/libexec".format(**vars) + if not os.path.isdir(qt_libexec_path): + os.makedirs(qt_libexec_path) + copyfile(f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/qt.conf", + qt_libexec_path, vars=vars) diff --git a/build_scripts/platforms/macos.py b/build_scripts/platforms/macos.py index 81e826d73..dcbaff3a3 100644 --- a/build_scripts/platforms/macos.py +++ b/build_scripts/platforms/macos.py @@ -160,12 +160,6 @@ def prepare_standalone_package_macos(self, vars): recursive=True, vars=vars, force_copy_symlinks=True) if self.is_webengine_built(built_modules): - copydir("{qt_lib_execs_dir}", - "{st_build_dir}/{st_package_name}/Qt/libexec", - filter=None, - recursive=False, - vars=vars) - copydir("{qt_prefix_dir}/resources", "{st_build_dir}/{st_package_name}/Qt/resources", filter=None, @@ -181,10 +175,11 @@ def prepare_standalone_package_macos(self, vars): if copy_qt_conf: # Copy the qt.conf file to libexec. + if not os.path.isdir(qt_libexec_path): + os.makedirs(qt_libexec_path) copyfile( f"{{build_dir}}/{PYSIDE}/{{st_package_name}}/qt.conf", - "{st_build_dir}/{st_package_name}/Qt/libexec", - vars=vars) + qt_libexec_path, vars=vars) if copy_plugins: # <qt>/plugins/* -> <setup>/{st_package_name}/Qt/plugins diff --git a/build_scripts/platforms/unix.py b/build_scripts/platforms/unix.py index 47e02a719..153e58af0 100644 --- a/build_scripts/platforms/unix.py +++ b/build_scripts/platforms/unix.py @@ -78,6 +78,7 @@ def _copy_gui_executable(name, vars=None): def prepare_packages_posix(self, vars): executables = [] + libexec_executables = [] # <install>/lib/site-packages/{st_package_name}/* -> # <setup>/{st_package_name} @@ -160,17 +161,25 @@ def prepare_packages_posix(self, vars): filter=[f"{PYSIDE}-lupdate"], recursive=False, vars=vars)) - if not OPTION['NO_QT_TOOLS']: - executables.extend(copydir( - "{install_dir}/bin/", - "{st_build_dir}/{st_package_name}", - filter=["uic", "rcc"], - recursive=False, vars=vars)) + lib_exec_filters = [] + if not OPTION['NO_QT_TOOLS']: + lib_exec_filters.extend(['uic', 'rcc']) # Copying assistant/designer executables.extend(_copy_gui_executable('assistant', vars=vars)) executables.extend(_copy_gui_executable('designer', vars=vars)) + # Copy libexec + built_modules = self.get_built_pyside_config(vars)['built_modules'] + if self.is_webengine_built(built_modules): + lib_exec_filters.append('QtWebEngineProcess') + if lib_exec_filters: + libexec_executables.extend(copydir("{qt_lib_execs_dir}", + "{st_build_dir}/{st_package_name}/Qt/libexec", + filter=lib_exec_filters, + recursive=False, + vars=vars)) + # <install>/lib/lib* -> {st_package_name}/ copydir( "{install_dir}/lib/", @@ -244,3 +253,5 @@ def prepare_packages_posix(self, vars): if sys.platform.startswith('linux') or sys.platform.startswith('darwin'): rpath_path = "{st_build_dir}/{st_package_name}".format(**vars) self.update_rpath(rpath_path, executables) + if libexec_executables: + self.update_rpath(rpath_path, libexec_executables, libexec=True) |