diff options
author | David Tardon <dtardon@redhat.com> | 2011-04-17 18:54:33 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2011-04-17 19:06:09 +0200 |
commit | 9c778f8527d0edb436c4f705691831dd88c92243 (patch) | |
tree | b75f0d9d3d724c6637bff6a5649584d7ec5891f6 | |
parent | 5cce753ee1a4bde22b69177a31d7a34dd5d3afc6 (diff) |
add support for resource templates
That is, resource files containing localizable data that are included
from other resource files. They have filenames like foo_tmpl.hrc
(sometimes foo_tmpl.src) and are included as foo.hrc . They were handled
by listing them in LOCALIZE_ME variable in the old build system.
-rw-r--r-- | solenv/gbuild/AllLangResTarget.mk | 73 | ||||
-rw-r--r-- | solenv/gbuild/TargetLocations.mk | 3 |
2 files changed, 76 insertions, 0 deletions
diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk index 24123d1af125..09cd3823a033 100644 --- a/solenv/gbuild/AllLangResTarget.mk +++ b/solenv/gbuild/AllLangResTarget.mk @@ -30,8 +30,11 @@ # # target task depends on # SrsTarget joining the parts SrsPartTarget +# SrsTemplateTarget # SrsPartTarget preprocessing SrsPartMergeTarget (with l10n) # source file (without l10n) +# SrsTemplateTarget handling templates SrsTemplatePartTarget +# SrsTemplatePartTarget handling template SrsPartMergeTarget # SrsPartMergeTarget merging/transex source file (only needed with l10n) # Overview of dependencies and tasks of AllLangResTarget @@ -127,6 +130,64 @@ endif endef +# SrsTemplatePartTarget class + +define gb_SrsTemplatePartTarget_SrsTemplatePartTarget +$(call gb_SrsTemplatePartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1)) + $$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $$(dir $$@) && \ + cp $$< $$@) +ifneq ($(strip $(WITH_LANG)),) +$(call gb_SrsPartMergeTarget_get_target,$(1)) : SDF := $(realpath $(gb_SrsPartMergeTarget_SDFLOCATION)$(dir $(1))localize.sdf) +$(call gb_SrsPartMergeTarget_get_target,$(1)) : $$(SDF) +endif +endef + +# SrsTemplateTarget class + +gb_SrsTemplateTarget__get_merged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_merged +gb_SrsTemplateTarget__get_unmerged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_unmerged + +ifeq ($(strip $(WITH_LANG)),) +gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1)) +gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1)) +else +gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1)) +gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1)) +endif + +define gb_SrsTemplateTarget_SrsTemplateTarget +$(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS := +$(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS := +$(call gb_SrsTemplateTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget__get_target,$(1)) +$(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplateTarget__get_update_target,$(1)) +endef + +.PHONY : $(call gb_SrsTemplateTarget_get_target,%) +$(call gb_SrsTemplateTarget_get_target,%) : + $(call gb_Output_announce,$*,$(true),SRT,4) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + touch $@) + +.PHONY : $(call gb_SrsTemplateTarget_get_clean_target,%) +$(call gb_SrsTemplateTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),SRT,4) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_SrsTemplateTarget_get_target,$*) \ + $(call gb_SrsTemplateTarget__get_merged_target,$*) \ + $(call gb_SrsTemplateTarget__get_unmerged_target,$*) \ + $(foreach part,$(PARTS),$(call gb_SrsTemplatePartTarget_get_target,$(part))) \ + $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part)))) + +define gb_SrsTemplateTarget_add_file +$(call gb_SrsTemplatePartTarget_SrsTemplatePartTarget,$(2)) +$(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS += $(2) +$(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS += $(2) +$(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplatePartTarget_get_target,$(2)) +$(call gb_SrsTemplatePartTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1)) +$(call gb_SrsPartMergeTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1)) +endef # SrsTarget class @@ -164,10 +225,13 @@ $(call gb_SrsTarget_get_dep_target,%) : endif define gb_SrsTarget_SrsTarget +$(call gb_SrsTemplateTarget_SrsTemplateTarget,$(1)) $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(gb_SrsTarget_DEFAULTDEFS) $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(SOLARINC) $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS := $(call gb_SrsTarget_get_target,$(1)) : PARTS := +$(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget_get_target,$(1)) +$(call gb_SrsTarget_get_clean_target,$(1)) : $(call gb_SrsTemplateTarget_get_clean_target,$(1)) ifeq ($(gb_FULLDEPS),$(true)) ifneq ($(wildcard $(call gb_SrsTarget_get_dep_target,$(1))),) include $(call gb_SrsTarget_get_dep_target,$(1)) @@ -200,6 +264,7 @@ $(call gb_SrsTarget_get_dep_target,$(1)) : $(call gb_SrsPartTarget_get_dep_targe endif $(call gb_SrsPartTarget_SrsPartTarget,$(2)) $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsPartTarget_get_target,$(2)) +$(call gb_SrsPartTarget_get_target,$(2)) :| $(call gb_SrsTemplateTarget_get_target,$(1)) $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS += $(2) $(call gb_SrsTarget_get_target,$(1)) : PARTS += $(2) @@ -210,6 +275,14 @@ $(foreach file,$(2),$(call gb_SrsTarget_add_file,$(1),$(file))) endef +define gb_SrsTarget_add_template +$(call gb_SrsTemplateTarget_add_file,$(1),$(2)) +endef + +define gb_SrsTarget_add_templates +$(foreach template,$(2),$(eval $(call gb_SrsTarget_add_template,$(1),$(template)))) +endef + # ResTarget diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index 486a5b6d1218..185261c0d6c2 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -82,6 +82,8 @@ gb_SdiTarget_get_target = $(WORKDIR)/SdiTarget/$(1) gb_SrsPartMergeTarget_get_target = $(WORKDIR)/SrsPartMergeTarget/$(1) gb_SrsPartTarget_get_target = $(WORKDIR)/SrsPartTarget/$(1) gb_SrsTarget_get_target = $(WORKDIR)/SrsTarget/$(1).srs +gb_SrsTemplatePartTarget_get_target = $(WORKDIR)/inc/$(firstword $(subst /, ,$(1)))/$(subst _tmpl,,$(notdir $(1))) +gb_SrsTemplateTarget_get_target = $(WORKDIR)/SrsTemplateTarget/$(1) define gb_Library_get_external_headers_target $(patsubst $(1):%,$(WORKDIR)/ExternalHeaders/Library/%,$(filter $(1):%,$(gb_Library_FILENAMES))) @@ -112,6 +114,7 @@ $(eval $(call gb_Helper_make_clean_targets,\ ResTarget \ SdiTarget \ SrsTarget \ + SrsTemplateTarget \ CppunitTest \ CustomTarget \ )) |