postprocess/CustomTarget_images.mk | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-)
New commits: commit 0ff4b4a08deace66567d6248af9e41fc7336a1c1 Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> AuthorDate: Sat Dec 10 17:52:23 2022 +0100 Commit: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> CommitDate: Tue Dec 13 15:09:11 2022 +0000 don't rebuild icon-themes if nothing changed Change-Id: I99ab68852d1f6e915a4cd92a4be2d28209e546ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143934 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> diff --git a/postprocess/CustomTarget_images.mk b/postprocess/CustomTarget_images.mk index b915aacf988a..0207cde533c8 100644 --- a/postprocess/CustomTarget_images.mk +++ b/postprocess/CustomTarget_images.mk @@ -92,21 +92,30 @@ $(packimages_DIR)/sourceimagelist.ilst : \ sed 's/\.png/\.svg/g' $@.png > $@.svg cat $@.png $@.svg > $@ -# commandimagelist.ilst and sorted.lst are phony to rebuild everything each time -.PHONY : $(packimages_DIR)/commandimagelist.ilst $(packimages_DIR)/sorted.lst +packimages_everything := $(shell $(FIND) $(SRCDIR)/icon-themes) +packimages_icon_themes := $(filter %/,$(wildcard $(SRCDIR)/icon-themes/*/)) +# TODO: awkward workaround for windows - the filter call chokes for some reason +# on the full list, and similarly the recursive filtering call from the initial +# version of the patch also fails on windows for some reason +# so don't try to be clever and do it in this awkward/tedious way. +# all this does is filtering everything for png/svg files that have /cmd/ as +# part of their path and then replacing the path to the theme-directory with +# %MODULE% - the surrounding sort not only sorts the lists, but gets rid of +# duplicate filenames that are left after the %MODULE% replacement +packimages_cmd_images := $(sort $(foreach file,$(packimages_everything),\ + $(if $(findstring /cmd/,$(filter %.png %.svg,$(file))),\ + $(foreach theme,$(packimages_icon_themes),\ + $(filter-out $(SRCDIR)/%,$(subst $(theme),%MODULE%/,$(file))))))) -$(packimages_DIR)/commandimagelist.ilst : - $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1) - $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),PRL) - $(call gb_Helper_abbreviate_dirs, \ - $(FIND) $(SRCDIR)/icon-themes -name "*.png" -o -name "*.svg" | \ - grep -e '/cmd/' | sed 's#^.*/icon-themes/[^/]*##' | \ - sed "s#^#%MODULE%#" | \ - LC_ALL=C $(SORT) -u > $@.tmp && \ - $(call gb_Helper_replace_if_different_and_touch,$@.tmp,$@)) - $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),PRL) +# adding everything as dependencies here, so that file deletion (when only the directory timestamp +# gets updated) will also trigger regeneration of the list +$(packimages_DIR)/commandimagelist.ilst : $(packimages_everything) + $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),LST,1) + $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),LST) + $(file >$@,$(subst $(WHITESPACE),$(NEWLINE),$(packimages_cmd_images))) + $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),LST) -$(packimages_DIR)/sorted.lst : \ +$(packimages_DIR)/sorted.lst : $(packimages_DIR)/commandimagelist.ilst \ $(SRCDIR)/postprocess/packimages/image-sort.lst \ $(call gb_Postprocess_get_target,AllUIConfigs) \ $(call gb_ExternalExecutable_get_dependencies,python)