diff options
| -rw-r--r-- | CMakeLists.txt | 3 | ||||
| -rw-r--r-- | cmake/Win32CleanupAdwaita.sh | 19 | 
2 files changed, 22 insertions, 0 deletions
| 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 | 
