aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2018-05-14 13:03:57 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2018-05-14 15:54:37 +0000
commit6f894c2667c77e2580e7312d2ebed05efa7d654e (patch)
tree98dabd469abc54d72c594f56076d4e451992df08 /build_scripts
parent601ab76776769eaec0d4fdfd4f33256d58beb114 (diff)
Reduce generated package size by removing unnecessary files
1) Don't copy pdb files for QML plugins on Windows 2) Don't copy debug variants of EGL library on Windows 3) Don't copy debug variants of shared libraries on macOS Task-number: PYSIDE-661 Change-Id: I37c701f3b12f3ad08fbdd24ab70587132ddc0c95 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'build_scripts')
-rw-r--r--build_scripts/platforms/macos.py28
-rw-r--r--build_scripts/platforms/windows_desktop.py32
2 files changed, 51 insertions, 9 deletions
diff --git a/build_scripts/platforms/macos.py b/build_scripts/platforms/macos.py
index a45192667..936f4ca90 100644
--- a/build_scripts/platforms/macos.py
+++ b/build_scripts/platforms/macos.py
@@ -49,6 +49,16 @@ def prepare_standalone_package_macos(self, executables, vars):
return False
return True
+ # Filter out debug plugins and qml plugins in the
+ # debug_and_release config.
+ no_copy_debug = True
+ def file_variant_filter(file_name, file_full_path):
+ if self.qtinfo.build_type != 'debug_and_release':
+ return True
+ if file_name.endswith('_debug.dylib') and no_copy_debug:
+ return False
+ return True
+
# <qt>/lib/* -> <setup>/PySide2/Qt/lib
if self.qt_is_framework_build():
framework_built_modules = [
@@ -71,10 +81,23 @@ def prepare_standalone_package_macos(self, executables, vars):
return general_dir_filter(dir_name, parent_full_path,
dir_full_path)
+ # Filter out debug frameworks in the
+ # debug_and_release config.
+ no_copy_debug = True
+ def framework_variant_filter(file_name, file_full_path):
+ if self.qtinfo.build_type != 'debug_and_release':
+ return True
+ dir_path = os.path.dirname(file_full_path)
+ in_framework = dir_path.endswith("Versions/5")
+ if file_name.endswith('_debug') and in_framework and no_copy_debug:
+ return False
+ return True
+
copydir("{qt_lib_dir}", "{pyside_package_dir}/PySide2/Qt/lib",
recursive=True, vars=vars,
ignore=["*.la", "*.a", "*.cmake", "*.pc", "*.prl"],
- dir_filter_function=framework_dir_filter)
+ dir_filter_function=framework_dir_filter,
+ file_filter_function=framework_variant_filter)
# Fix rpath for WebEngine process executable. The already
# present rpath does not work because it assumes a symlink
@@ -102,6 +125,7 @@ def prepare_standalone_package_macos(self, executables, vars):
"{pyside_package_dir}/PySide2/Qt/lib",
filter=accepted_modules,
ignore=ignored_modules,
+ file_filter_function=file_variant_filter,
recursive=True, vars=vars, force_copy_symlinks=True)
if self.is_webengine_built(built_modules):
@@ -137,6 +161,7 @@ def prepare_standalone_package_macos(self, executables, vars):
filter=["*.dylib"],
recursive=True,
dir_filter_function=general_dir_filter,
+ file_filter_function=file_variant_filter,
vars=vars)
# <qt>/qml/* -> <setup>/PySide2/Qt/qml
@@ -146,6 +171,7 @@ def prepare_standalone_package_macos(self, executables, vars):
recursive=True,
force=False,
dir_filter_function=general_dir_filter,
+ file_filter_function=file_variant_filter,
vars=vars)
# <qt>/translations/* -> <setup>/PySide2/Qt/translations
diff --git a/build_scripts/platforms/windows_desktop.py b/build_scripts/platforms/windows_desktop.py
index 6a18659c5..f4b4aed6e 100644
--- a/build_scripts/platforms/windows_desktop.py
+++ b/build_scripts/platforms/windows_desktop.py
@@ -180,8 +180,6 @@ def prepare_packages_win32(self, vars):
qt_artifacts_permanent = [
"opengl*.dll",
"d3d*.dll",
- "libEGL*.dll",
- "libGLESv2*.dll",
"designer.exe",
"linguist.exe",
"lrelease.exe",
@@ -189,6 +187,21 @@ def prepare_packages_win32(self, vars):
"lconvert.exe",
"qtdiag.exe"
]
+
+ # Choose which EGL library variants to copy.
+ qt_artifacts_egl = [
+ "libEGL{}.dll",
+ "libGLESv2{}.dll"
+ ]
+ if self.qtinfo.build_type != 'debug_and_release':
+ egl_suffix = '*'
+ elif self.debug:
+ egl_suffix = 'd'
+ else:
+ egl_suffix = ''
+ qt_artifacts_egl = [a.format(egl_suffix) for a in qt_artifacts_egl]
+ qt_artifacts_permanent += qt_artifacts_egl
+
copydir("{qt_bin_dir}", "{pyside_package_dir}/PySide2",
filter=qt_artifacts_permanent,
recursive=False, vars=vars)
@@ -273,18 +286,21 @@ def prepare_packages_win32(self, vars):
# <qt>/qml/* -> <setup>/PySide2/qml
qml_dll_patterns = ["*{}.dll"]
qml_ignore_patterns = qml_dll_patterns + [pdb_pattern]
- # Remove the "{}" from the patterns
qml_ignore = [a.format('') for a in qml_ignore_patterns]
- if copy_pdbs:
- qml_dll_patterns += [pdb_pattern]
- qml_ignore = [a.format('') for a in qml_dll_patterns]
- qml_dll_filter = functools.partial(qt_build_config_filter,
- qml_dll_patterns)
+
+ # Copy all files that are not dlls and pdbs (.qml, qmldir).
copydir("{qt_qml_dir}", "{pyside_package_dir}/PySide2/qml",
ignore=qml_ignore,
force=False,
recursive=True,
vars=vars)
+
+ if copy_pdbs:
+ qml_dll_patterns += [pdb_pattern]
+ qml_dll_filter = functools.partial(qt_build_config_filter,
+ qml_dll_patterns)
+
+ # Copy all dlls (and possibly pdbs).
copydir("{qt_qml_dir}", "{pyside_package_dir}/PySide2/qml",
file_filter_function=qml_dll_filter,
force=False,