summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2012-12-27 10:54:04 +0100
committerDavid Tardon <dtardon@redhat.com>2012-12-28 16:22:27 +0100
commit90c34cdfa0689167d9dee5df6459ed7449b76301 (patch)
tree1e22eda8116ff0f49956794ed15bc40597d4458a /solenv
parent743e16e71c5b623b3545f19a3ff5640c2ba43cd2 (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 (cherry picked from commit b209dec8bbc9be5471438837a4da64adfa350298) Signed-off-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/TargetLocations.mk5
-rw-r--r--solenv/gbuild/UI.mk131
2 files changed, 40 insertions, 96 deletions
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 32887bee7956..9aef6d3d6397 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -161,8 +161,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
@@ -264,7 +264,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 a529adc3552f..5a3f8fccf858 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
@@ -169,25 +124,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
@@ -200,7 +145,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
@@ -209,11 +158,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