Refactor Linux build trimming and cleanup

Consolidate and harden post-build cleanup by targeting the build's lib directory (lib_dir) instead of running broad finds across build_dir. Removes screenshots, PySide6 translations, specific Qt plugins and plugin files, and various Qt6 shared libraries (Web, Pdf, Qml, Quick, VirtualKeyboard, OpenGL) to reduce bundle size. Also removes common build tools/modules (setuptools, wheel, pkg_resources, _distutils_hack, curses, _pyrepl) and adds explicit logging and a warning if lib_dir is missing. Simplifies and centralizes cleanup logic for more predictable and efficient trimming of Linux artifacts.
This commit is contained in:
oop7
2026-02-03 15:40:48 +02:00
parent 536594a56e
commit ce4a034224
+33 -16
View File
@@ -219,37 +219,54 @@ jobs:
if [ -n "$build_dir" ]; then if [ -n "$build_dir" ]; then
echo "Trimming files in $build_dir..." echo "Trimming files in $build_dir..."
lib_dir="$build_dir/lib"
# Remove screenshots if [ -d "$lib_dir" ]; then
if [ -d "$build_dir/lib/assets/branding/screenshots" ]; then # 1. Remove screenshots
rm -rf "$build_dir/lib/assets/branding/screenshots" if [ -d "$lib_dir/assets/branding/screenshots" ]; then
rm -rf "$lib_dir/assets/branding/screenshots"
echo "Removed screenshots folder" echo "Removed screenshots folder"
fi fi
# Remove unused Qt translations # 2. Remove unused Qt translations
# In Linux builds, translations are often in lib/PySide6/translations or similar if [ -d "$lib_dir/PySide6/translations" ]; then
translations=$(find "$build_dir" -type d -name "translations" | grep "PySide6" || true) rm -rf "$lib_dir/PySide6/translations"
if [ -n "$translations" ]; then echo "Removed Qt translations"
rm -rf "$translations"
echo "Removed Qt translations at $translations"
fi fi
# Remove unused Qt plugins (matching Windows logic) # 3. Remove unused Qt plugins
plugins_dir=$(find "$build_dir" -type d -name "plugins" | grep "PySide6" | head -n1 || true) plugins_dir="$lib_dir/PySide6/plugins"
if [ -n "$plugins_dir" ]; then if [ -d "$plugins_dir" ]; then
for plugin in designer pdf svg sql help qml quick webengine bluetooth opengl printsupport test xml; do for plugin in designer pdf svg sql help qml quick webengine bluetooth opengl printsupport test xml; do
if [ -d "$plugins_dir/$plugin" ]; then if [ -d "$plugins_dir/$plugin" ]; then
rm -rf "$plugins_dir/$plugin" rm -rf "$plugins_dir/$plugin"
echo "Removed plugin: $plugin" echo "Removed plugin: $plugin"
fi fi
done done
# Specific cleanups (input contexts, imageformats)
rm -rf "$plugins_dir/platforminputcontexts"
rm -f "$plugins_dir/imageformats/libqpdf.so" "$plugins_dir/imageformats/libqsvg.so"
rm -f "$plugins_dir/iconengines/libqsvgicon.so"
fi fi
# Remove other unused components if found # 4. Remove bloat shared libraries (Recursively finds in lib/ and lib/PySide6/)
find "$build_dir" -name "Qt6Web*" -delete # Matches libQt6Qml.so.6, Qt6Qml.abi3.so, etc.
find "$build_dir" -name "Qt6Pdf*" -delete echo "Removing bloat Qt libraries..."
echo "Cleaned additional Qt files" find "$lib_dir" -name "*Qt6Web*" -delete
find "$lib_dir" -name "*Qt6Pdf*" -delete
find "$lib_dir" -name "*Qt6Qml*" -delete
find "$lib_dir" -name "*Qt6Quick*" -delete
find "$lib_dir" -name "*Qt6VirtualKeyboard*" -delete
find "$lib_dir" -name "*Qt6OpenGL*" -delete
# 5. Remove build tools and unused python modules
for tool in setuptools wheel pkg_resources _distutils_hack curses _pyrepl; do
rm -rf "$lib_dir/$tool"
echo "Removed build tool/module: $tool"
done
else
echo "Warning: lib directory not found inside build_dir"
fi
else else
echo "Warning: Build directory not found, cannot trim files" echo "Warning: Build directory not found, cannot trim files"
fi fi