diff options
author | David Tardon <dtardon@redhat.com> | 2012-12-27 10:54:04 +0100 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2012-12-27 17:16:51 +0100 |
commit | b209dec8bbc9be5471438837a4da64adfa350298 (patch) | |
tree | d4d090767d005f54b0513f0e86a6b30a8e610bd2 | |
parent | c27b2e377f612de2476ff0aa0ddc909ff214fcb2 (diff) |
create all translations for a .ui file in one uiex call
This should help a lot with Windows release build times (i.e., move it
from "glacially slow" category to just "slow").
Change-Id: I6d397eb5d1ec1779616c3eef8e51f9cf29d5acec
-rw-r--r-- | solenv/gbuild/TargetLocations.mk | 5 | ||||
-rw-r--r-- | solenv/gbuild/UI.mk | 131 |
2 files changed, 40 insertions, 96 deletions
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index 50eebd891c09..09966d20b4b0 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -170,8 +170,8 @@ gb_SrsTemplateTarget_get_include_dir = $(WORKDIR)/SrsTemplatePartTarget/$(firstw gb_SrsTemplateTarget_get_target = $(WORKDIR)/SrsTemplateTarget/$(1) gb_ThesaurusIndexTarget_get_target = $(WORKDIR)/ThesaurusIndexTarget/$(basename $(1)).idx gb_UI_get_target = $(WORKDIR)/UI/$(1).done -gb_UILocalizeTarget_get_target = $(WORKDIR)/UILocalizeTarget/$(1).ui -gb_UITarget_get_target = $(WORKDIR)/UITarget/$(1).done +gb_UILocalizeTarget_get_target = $(WORKDIR)/UILocalizeTarget/$(1).done +gb_UILocalizeTarget_get_workdir = $(WORKDIR)/UILocalizeTarget/$(1) gb_UnoApiTarget_get_external_headers_target = $(WORKDIR)/UnoApiTarget/$(1).external gb_UnoApiTarget_get_headers_target = $(WORKDIR)/UnoApiTarget/$(1).headers gb_UnoApiTarget_get_target = $(WORKDIR)/UnoApiTarget/$(1).rdb @@ -275,7 +275,6 @@ $(eval $(call gb_Helper_make_clean_targets,\ ExternalProject \ UI \ UILocalizeTarget \ - UITarget \ UnoApiHeadersTarget \ UnoApiTarget \ UnpackedTarball \ diff --git a/solenv/gbuild/UI.mk b/solenv/gbuild/UI.mk index cbf4bbed344b..ad569e145c6a 100644 --- a/solenv/gbuild/UI.mk +++ b/solenv/gbuild/UI.mk @@ -9,11 +9,13 @@ # class UILocalizeTarget +# Produces translations for one .ui file. + gb_UILocalizeTarget_WORKDIR := $(WORKDIR)/UILocalizeTarget gb_UILocalizeTarget_TARGET := $(call gb_Executable_get_target_for_build,uiex) gb_UILocalizeTarget_COMMAND := $(gb_Helper_set_ld_path) $(gb_UILocalizeTarget_TARGET) -gb_UILocalizeTarge_LANGS := $(filter-out qtz,$(filter-out en-US,$(gb_WITH_LANG))) +gb_UILocalizeTarget_LANGS := $(filter-out qtz,$(filter-out en-US,$(gb_WITH_LANG))) define gb_UILocalizeTarget__command $(call gb_Output_announce,$(2),$(true),UIX,1) @@ -22,13 +24,17 @@ echo $(POFILES) > $${MERGEINPUT} && \ $(call gb_Helper_abbreviate_dirs,\ $(gb_UILocalizeTarget_COMMAND) \ -i $(UI_FILE) \ - -o $(dir $(1)) \ - -l $(UI_LANG) \ - -m $${MERGEINPUT} ) && \ + -o $(call gb_UILocalizeTarget_get_workdir,$(2)) \ + -l all \ + -m $${MERGEINPUT} \ + && touch $(1) \ +) && \ rm -rf $${MERGEINPUT} - endef +$(dir $(call gb_UILocalizeTarget_get_target,%)).dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + $(dir $(call gb_UILocalizeTarget_get_target,%))%/.dir : $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) @@ -42,77 +48,26 @@ $(call gb_UILocalizeTarget_get_clean_target,%) : rm -f $(call gb_UILocalizeTarget_get_target,$*) \ ) -# Translates one .ui file +# Produce translations for one .ui file # -# gb_UILocalizeTarget_UILocalizeTarget target source lang +# gb_UILocalizeTarget_UILocalizeTarget target define gb_UILocalizeTarget_UILocalizeTarget -$(call gb_UILocalizeTarget_get_target,$(1)) : POFILES := $(foreach lang,$(gb_UILocalizeTarge_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(2))).po) -$(call gb_UILocalizeTarget_get_target,$(1)) : UI_FILE := $(SRCDIR)/$(2).ui -$(call gb_UILocalizeTarget_get_target,$(1)) : UI_LANG := $(3) - -$(call gb_UILocalizeTarget_get_target,$(1)) : $(foreach lang,$(gb_UILocalizeTarge_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(2))).po) -$(call gb_UILocalizeTarget_get_target,$(1)) : $(SRCDIR)/$(2).ui -$(call gb_UILocalizeTarget_get_target,$(1)) :| $(dir $(call gb_UILocalizeTarget_get_target,$(1))).dir +$(call gb_UILocalizeTarget__UILocalizeTarget_impl,$(1),$(foreach lang,$(gb_UILocalizeTarget_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(1))).po)) -$(foreach lang,$(gb_UILocalizeTarge_LANGS),$(gb_POLOCATION)/$(lang)/$(patsubst %/,%,$(dir $(2))).po) : endef -# class UITarget - -# en-US is a special case -gb_UITarget_LANGS := $(filter-out en-US,$(gb_WITH_LANG)) - -gb_UITarget_LOCALIZED_DIR := $(gb_UILocalizeTarget_WORKDIR) - -gb_UITarget_get_uifile_for_lang = $(subst $(gb_UITarget_LOCALIZED_DIR)/,,$(call gb_UILocalizeTarget_get_target,$(1)/$(2))) - -$(dir $(call gb_UITarget_get_target,%)).dir : - $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) - -$(dir $(call gb_UITarget_get_target,%))%/.dir : - $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) - -$(call gb_UITarget_get_target,%) : - $(call gb_Output_announce,$*,$(true),UI ,2) - $(call gb_Helper_abbreviate_dirs,\ - touch $@ \ - ) - -.PHONY : $(call gb_UITarget_get_clean_target,%) -$(call gb_UITarget_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),UI ,2) - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_UITarget_get_target,$*) \ - ) +# gb_UILocalizeTarget__UILocalizeTarget_impl target pofiles +define gb_UILocalizeTarget__UILocalizeTarget_impl +$(call gb_UILocalizeTarget_get_target,$(1)) : POFILES := $(2) +$(call gb_UILocalizeTarget_get_target,$(1)) : UI_FILE := $(SRCDIR)/$(1).ui -# Translates a set of .ui files -# -# gb_UITarget_UITarget modulename -define gb_UITarget_UITarget -$(call gb_UITarget_get_target,$(1)) :| $(dir $(call gb_UITarget_get_target,$(1))).dir - -endef +$(call gb_UILocalizeTarget_get_target,$(1)) : $(2) +$(call gb_UILocalizeTarget_get_target,$(1)) : $(SRCDIR)/$(1).ui +$(call gb_UILocalizeTarget_get_target,$(1)) :| \ + $(dir $(call gb_UILocalizeTarget_get_target,$(1))).dir \ + $(call gb_UILocalizeTarget_get_workdir,$(1))/.dir -define gb_UITarget__add_uifile_for_lang -$(call gb_UILocalizeTarget_UILocalizeTarget,$(2)/$(3),$(2),$(3)) -$(call gb_UITarget_get_target,$(1)) : $(call gb_UILocalizeTarget_get_target,$(2)/$(3)) -$(call gb_UITarget_get_clean_target,$(1)) : $(call gb_UILocalizeTarget_get_clean_target,$(2)/$(3)) - -endef - -# Adds an .ui file for translation -# -# gb_UITarget_add_uifile target uifile -define gb_UITarget_add_uifile -$(foreach lang,$(gb_UITarget_LANGS),$(call gb_UITarget__add_uifile_for_lang,$(1),$(2),$(lang))) - -endef - -# Adds multiple .ui files for translation -# -# gb_UITarget_add_uifiles target uifile(s) -define gb_UITarget_add_uifiles -$(foreach uifile,$(2),$(call gb_UITarget_add_uifile,$(1),$(uifile))) +$(2) : endef @@ -120,7 +75,8 @@ endef # Handles UI description files (suffix .ui) for the new layouting mechanism. -gb_UI_LANGS := $(gb_UITarget_LANGS) +# en-US is the default, so there is no translation for it +gb_UI_LANGS := $(filter-out en-US,$(gb_WITH_LANG)) $(dir $(call gb_UI_get_target,%)).dir : $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) @@ -129,12 +85,14 @@ $(dir $(call gb_UI_get_target,%))%/.dir : $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) $(call gb_UI_get_target,%) : + $(call gb_Output_announce,$*,$(true),UI ,2) $(call gb_Helper_abbreviate_dirs,\ touch $@ \ ) .PHONY : $(call gb_UI_get_clean_target,%) $(call gb_UI_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),UI ,2) $(call gb_Helper_abbreviate_dirs,\ rm -f $(call gb_UI_get_target,$*) \ ) @@ -149,11 +107,8 @@ $(call gb_UI_get_target,$(1)) :| $(call gb_Package_get_target,$(1)_ui) $(call gb_UI_get_clean_target,$(1)) : $(call gb_Package_get_clean_target,$(1)_ui) ifneq ($(gb_UI_LANGS),) -$(call gb_UITarget_UITarget,$(1)) -$(call gb_Package_Package_internal,$(1)_ui_localized,$(gb_UITarget_LOCALIZED_DIR)) -$(call gb_UI_get_target,$(1)) : $(call gb_UITarget_get_target,$(1)) +$(call gb_Package_Package_internal,$(1)_ui_localized,$(gb_UILocalizeTarget_WORKDIR)) $(call gb_UI_get_target,$(1)) :| $(call gb_Package_get_target,$(1)_ui_localized) -$(call gb_UI_get_clean_target,$(1)) : $(call gb_UITarget_get_clean_target,$(1)) $(call gb_UI_get_clean_target,$(1)) : $(call gb_Package_get_clean_target,$(1)_ui_localized) endif @@ -171,25 +126,15 @@ $(call gb_Package_add_file,$(2),$(call gb_UI__get_outdir_filename,$(1),$(3),$(5) endef -# gb_UI__add_uifile_direct target file -define gb_UI__add_uifile_direct +# gb_UI__add_uifile target file +define gb_UI__add_uifile $(call gb_UI__package_uifile,$(1),$(1)_ui,$(2),$(2).ui) endef # gb_UI__add_uifile_for_lang target file lang define gb_UI__add_uifile_for_lang -$(call gb_UI__package_uifile,$(1),$(1)_ui_localized,$(2),$(call gb_UITarget_get_uifile_for_lang,$(2),$(3)),$(3)) - -endef - -define gb_UI__add_uifile -$(call gb_UI__add_uifile_direct,$(1),$(2)) - -ifneq ($(gb_UI_LANGS),) -$(call gb_UITarget_add_uifile,$(1),$(2)) -$(foreach lang,$(gb_UI_LANGS),$(call gb_UI__add_uifile_for_lang,$(1),$(2),$(lang))) -endif +$(call gb_UI__package_uifile,$(1),$(1)_ui_localized,$(2),$(2)/$(3).ui,$(3)) endef @@ -202,7 +147,11 @@ define gb_UI_add_uifile $(call gb_UI__add_uifile,$(1),$(2)) ifneq ($(gb_UI_LANGS),) -$(call gb_UITarget_add_uifile,$(1),$(2)) +$(call gb_UILocalizeTarget_UILocalizeTarget,$(2)) +$(call gb_UI_get_target,$(1)) : $(call gb_UILocalizeTarget_get_target,$(2)) +$(call gb_UI_get_clean_target,$(1)) : $(call gb_UILocalizeTarget_get_clean_target,$(2)) +$(call gb_Package_get_preparation_target,$(1)_ui_localized) : $(call gb_UILocalizeTarget_get_target,$(2)) +$(foreach lang,$(gb_UI_LANGS),$(call gb_UI__add_uifile_for_lang,$(1),$(2),$(lang))) endif endef @@ -211,11 +160,7 @@ endef # # gb_UI_add_uifiles target uifile(s) define gb_UI_add_uifiles -$(foreach uifile,$(2),$(call gb_UI__add_uifile,$(1),$(uifile))) - -ifneq ($(gb_UI_LANGS),) -$(call gb_UITarget_add_uifiles,$(1),$(2)) -endif +$(foreach uifile,$(2),$(call gb_UI_add_uifile,$(1),$(uifile))) endef |