From 27a9869a6a68a2898e08b7c977941b6781788ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Tue, 26 Oct 2021 11:26:39 +0200 Subject: [PATCH] Trim down the Windows build a bit Remove most unused Adwaita icons and cursors, it's about 30 mebibytes of raw bullshit that doesn't seem to be missing in any shape or form. Rather sadly, the script is too complex to be rewritten in CMake script. --- CMakeLists.txt | 3 +++ cmake/Win32CleanupAdwaita.sh | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 cmake/Win32CleanupAdwaita.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 657f7c7..8505abe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -264,6 +264,9 @@ elseif (WITH_GUI) DESTINATION share/icons/hicolor) install (SCRIPT cmake/Win32Cleanup.cmake) + install (CODE "execute_process (COMMAND + sh \"${PROJECT_SOURCE_DIR}/cmake/Win32CleanupAdwaita.sh\" + WORKING_DIRECTORY \${CMAKE_INSTALL_PREFIX})") endif () # Do some unit tests diff --git a/cmake/Win32CleanupAdwaita.sh b/cmake/Win32CleanupAdwaita.sh new file mode 100644 index 0000000..194f959 --- /dev/null +++ b/cmake/Win32CleanupAdwaita.sh @@ -0,0 +1,19 @@ +#!/bin/sh -e +# Removes unused icons from the Adwaita theme, it could be even more aggressive, +# since it keeps around lots of sizes and all the GTK+ stock icons +export LC_ALL=C +find share/icons/Adwaita -type f | awk 'BEGIN { + while (("grep -aho \"[a-z][a-z-]*\" *.dll *.exe" | getline) > 0) + good[$0] = 1 +} /[.](png|svg|cur|ani)$/ { + # Cut out the basename without extensions + match($0, /[^\/]+$/) + base = substr($0, RSTART) + sub(/[.].+$/, "", base) + + # Try matching while cutting off suffixes + while (!(keep = good[base]) && + sub(/-(ltr|rtl|symbolic)$/, "", base)) {} + if (!keep) + print +}' | xargs rm