i18npool/CustomTarget_localedata.mk | 13 ++++++++----- solenv/gbuild/Helper.mk | 7 +++++++ 2 files changed, 15 insertions(+), 5 deletions(-)
New commits: commit a4e15140b33633301c387a4d95b18de24231cbdb Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Sat Jan 1 13:27:50 2022 +0100 Commit: Jan-Marek Glogowski <glo...@fbihome.de> CommitDate: Sat Jan 1 22:27:56 2022 +0100 Further separate saxparser run from cmp'n'touch At least on Windows the calls to saxparser almost feel as slow as the compilation. So this adds an intermediate file just for the cmp calls, costing just a bit more filesystem space. This also reverts the gb_MKTEMP usage introduced in commit 14eeed686c5490ddbd356c1ac807b16231e4cb88. Using a fixed name in WORKDIR is easier to debug eventually, then some random mktemp generated file, and is faster anyway. Change-Id: Id4979b75b881e916c209ff0ff8e123536294e93b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127841 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> diff --git a/i18npool/CustomTarget_localedata.mk b/i18npool/CustomTarget_localedata.mk index c9fd9c213a95..6a63785fe839 100644 --- a/i18npool/CustomTarget_localedata.mk +++ b/i18npool/CustomTarget_localedata.mk @@ -15,19 +15,22 @@ $(eval $(call gb_CustomTarget_register_targets,i18npool/localedata,\ $(foreach name,$(i18npool_LD_NAMES),localedata_$(name).cxx) \ )) -$(call gb_CustomTarget_get_workdir,i18npool/localedata)/localedata_%.cxx : \ +$(call gb_CustomTarget_get_workdir,i18npool/localedata)/localedata_%_new.cxx : \ $(SRCDIR)/i18npool/source/localedata/data/%.xml \ $(call gb_Executable_get_runtime_dependencies,saxparser) $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),SAX,1) $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),SAX) - TEMPSAX=$(shell $(gb_MKTEMP)) && TEMPSED=$(shell $(gb_MKTEMP)) && \ $(call gb_Helper_abbreviate_dirs, \ $(call gb_Helper_print_on_error, \ - $(call gb_Helper_execute,saxparser) $* $< $${TEMPSAX} \ + $(call gb_Helper_execute,saxparser) $* $< $@.sax \ -env:LO_LIB_DIR=$(call gb_Helper_make_url,$(INSTROOT_FOR_BUILD)/$(LIBO_LIB_FOLDER)) \ -env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target_for_build,saxparser))) && \ - sed 's/\(^.*get[^;]*$$\)/SAL_DLLPUBLIC_EXPORT \1/' $${TEMPSAX} > $${TEMPSED} && \ - rm $${TEMPSAX} && $(call gb_Helper_replace_if_different_and_touch,$${TEMPSED},$@)) + sed 's/\(^.*get[^;]*$$\)/SAL_DLLPUBLIC_EXPORT \1/' $@.sax > $@) + rm $@.sax $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),SAX) +$(call gb_CustomTarget_get_workdir,i18npool/localedata)/localedata_%.cxx : \ + $(call gb_CustomTarget_get_workdir,i18npool/localedata)/localedata_%_new.cxx + $(call gb_Helper_copy_if_different_and_touch,$<,$@) + # vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk index a146de70d748..d4d5f1c9eef1 100644 --- a/solenv/gbuild/Helper.mk +++ b/solenv/gbuild/Helper.mk @@ -288,6 +288,13 @@ else mv $(1) $(2) $(if $(3),&& touch -r $(3) $(2)); \ fi endef +# call gb_Helper_copy_if_different_and_touch,source,target,optional-touch-reference-file +define gb_Helper_copy_if_different_and_touch +if ! cmp -s $(1) $(2); then \ + cp $(1) $(2) $(if $(3),&& touch -r $(3) $(2)); \ +fi +endef + define gb_Helper_define_if_set $(foreach def,$(1),$(if $(filter TRUE YES,$($(def))),-D$(def))) endef