diff options
author | David Tardon <dtardon@redhat.com> | 2013-05-15 16:56:31 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-05-15 17:08:29 +0200 |
commit | 268a23d8c2d9881aa6d492b7609424b839c8704c (patch) | |
tree | 680cf51859fcb1113278d0c069409c6e66fd4206 | |
parent | 7fd93c32d7c0606594a35d7301e14711d4f517c0 (diff) |
gbuild: use pattern rules for Gallery l10n files
Change-Id: I781d02805ee0d526638f556794b852c6277922dd
-rw-r--r-- | solenv/gbuild/Gallery.mk | 69 |
1 files changed, 44 insertions, 25 deletions
diff --git a/solenv/gbuild/Gallery.mk b/solenv/gbuild/Gallery.mk index c9fdc3d02e72..6e0284fe08de 100644 --- a/solenv/gbuild/Gallery.mk +++ b/solenv/gbuild/Gallery.mk @@ -73,6 +73,24 @@ $(call gb_Helper_abbreviate_dirs,\ ) endef +define gb_Gallery__command_ulf +$(call gb_Output_announce,$(2),$(true),ULF,1) +MERGEINPUT=`$(gb_MKTEMP)` && \ +echo $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(GALLERY_BASEDIR))).po) > $${MERGEINPUT} && \ +$(call gb_Helper_abbreviate_dirs,\ + $(call gb_Executable_get_command,ulfex) -i $(GALLERY_ULFFILE) -o $(1) -m $${MERGEINPUT} -l all) && \ +rm -rf $${MERGEINPUT} +endef + +define gb_Gallery__command_str +$(call gb_Output_announce,$(2),$(true),STR,1) +cp -f $(GALLERY_STRFILE) $@ && \ +$(PERL) $(gb_Gallery_TRANSLATE) \ + --ext "str" --key "name" \ + -d $(GALLERY_WORKDIR) \ + $(GALLERY_ULFFILE) +endef + gb_Gallery__get_final_target = $(WORKDIR)/Gallery/$(1).final $(dir $(call gb_Gallery_get_target,$(1))).dir : @@ -89,6 +107,18 @@ $(call gb_Gallery_get_target,%) : \ $(call gb_Gallery__get_final_target,%) : touch $@ +ifneq ($(WITH_LANG),) +$(call gb_Gallery_get_workdir,%).ulf : $(call gb_Executable_get_runtime_dependencies,ulfex) + $(call gb_Gallery__command_ulf,$@,$*) +else +$(call gb_Gallery_get_workdir,%).ulf : + $(call gb_Output_announce,$*,$(true),CPY,1) + cp $(GALLERY_ULFFILE) $@ +endif + +$(call gb_Gallery_get_workdir,%).str : $(gb_Gallery_TRANSLATE) + $(call gb_Gallery__command_str,$@,$*) + .PHONY : $(call gb_Gallery_get_clean_target,%) $(call gb_Gallery_get_clean_target,%) : $(call gb_Output_announce,$*,$(false),GAL,1) @@ -125,6 +155,9 @@ endef gb_Gallery_basedir = $(patsubst %/,%,$(dir $(SRCDIR)/$(1))) +# TODO: we process the same ulf file for every gallery. That does not +# make sense. +# # gb_Gallery__Gallery_impl gallery package basedir name define gb_Gallery__Gallery_impl $(call gb_Package_Package_internal,$(2),$(call gb_Gallery_get_workdir,$(1))) @@ -138,6 +171,17 @@ $(call gb_Package_add_file,$(2),$(gb_Gallery_INSTDIR)/$(1).str,$(1).str) $(call gb_Gallery_get_target,$(1)) : GALLERY_BASEDIR := $(call gb_Helper_make_url,$(call gb_Gallery_basedir,$(3))) $(call gb_Gallery_get_target,$(1)) : GALLERY_FILES := $(call gb_Gallery_get_target,$(1)) : GALLERY_NAME := $(1) +$(call gb_Gallery_get_workdir,$(1))/$(1).str : GALLERY_STRFILE := $(SRCDIR)/$(3)/$(1).str +$(call gb_Gallery_get_workdir,$(1))/$(1).str : GALLERY_ULFFILE := $(call gb_Gallery_get_workdir,$(1))/$(1).ulf +$(call gb_Gallery_get_workdir,$(1))/$(1).str : GALLERY_WORKDIR := $(call gb_Gallery_get_workdir,$(1)) +$(call gb_Gallery_get_workdir,$(1))/$(1).ulf : GALLERY_BASEDIR := $(3) +$(call gb_Gallery_get_workdir,$(1))/$(1).ulf : GALLERY_ULFFILE := $(call gb_Gallery_basedir,$(3))/share/gallery_names.ulf + +$(call gb_Gallery_get_workdir,$(1))/$(1).ulf : \ + $(call gb_Gallery_basedir,$(3))/share/gallery_names.ulf \ + $(call gb_Gallery_get_target,$(1)) # that rule pre-cleans our output directory + +$(call gb_Gallery_get_workdir,$(1))/$(1).str : $(call gb_Gallery_get_workdir,$(1))/$(1).ulf $(call gb_Gallery_get_workdir,$(1))/$(1).sdg \ $(call gb_Gallery_get_workdir,$(1))/$(1).sdv \ @@ -151,31 +195,6 @@ $(call gb_Gallery_get_target,$(1)) :| $(dir $(call gb_Gallery_get_target,$(1))). $$(eval $$(call gb_Module_register_target,$(call gb_Gallery__get_final_target,$(1)),$(call gb_Gallery_get_clean_target,$(1)))) $(call gb_Helper_make_userfriendly_targets,$(1),Gallery,$(call gb_Gallery__get_final_target,$(1))) - -# this should probably be done with more general rules: but how ? -ifneq ($(WITH_LANG),) -$$(call gb_Gallery_get_workdir,$(1))/$(1).ulf : \ - $$(call gb_Gallery_basedir,$(3))/share/gallery_names.ulf | $$(call gb_Executable_get_runtime_dependencies,ulfex) \ - $(call gb_Gallery_get_target,$(1)) # that rule pre-cleans our output directory - $$(call gb_Output_announce,$@,$(true),SUM,1) - MERGEINPUT=`$(gb_MKTEMP)` && \ - echo $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(3))).po) > $$$${MERGEINPUT} && \ - $(call gb_Helper_abbreviate_dirs,\ - $$(call gb_Executable_get_command,ulfex) -i $$< -o $$@ -m $$$${MERGEINPUT} -l all ) && \ - rm -rf $$$${MERGEINPUT} -else -$$(call gb_Gallery_get_workdir,$(1))/$(1).ulf : $$(call gb_Gallery_basedir,$(3))/share/gallery_names.ulf - cp $$< $$@ -endif - -$(call gb_Gallery_get_workdir,$(1))/$(1).str : $(gb_Gallery_TRANSLATE) \ - $$(call gb_Gallery_get_workdir,$(1))/$(1).ulf - cp -f $(SRCDIR)/$(3)/$(1).str $(call gb_Gallery_get_workdir,$(1))/$(1).str && \ - $(PERL) $(gb_Gallery_TRANSLATE) \ - --ext "str" --key "name" \ - -d $$(call gb_Gallery_get_workdir,$(1))/ \ - $$(call gb_Gallery_get_workdir,$(1))/$(1).ulf - endef # Add a file to the gallery. |