summaryrefslogtreecommitdiffstats
path: root/solenv/gbuild/AllLangHelp.mk
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2013-02-26 15:00:59 +0100
committerDavid Tardon <dtardon@redhat.com>2013-02-26 15:24:54 +0100
commit0909384b98deeaa9e788b30be46e6c81b9adc68b (patch)
tree0a16605dfa6d3167ef2a27e2e6251714e453edfb /solenv/gbuild/AllLangHelp.mk
parentallow to create non-delivered Zip targets (diff)
downloadcore-0909384b98deeaa9e788b30be46e6c81b9adc68b.tar.gz
core-0909384b98deeaa9e788b30be46e6c81b9adc68b.zip
add support for building help packs into gbuild
Change-Id: I1cc5600ab0f6236c451d07bfb5ad9ee42ea4754a
Diffstat (limited to 'solenv/gbuild/AllLangHelp.mk')
-rw-r--r--solenv/gbuild/AllLangHelp.mk166
1 files changed, 166 insertions, 0 deletions
diff --git a/solenv/gbuild/AllLangHelp.mk b/solenv/gbuild/AllLangHelp.mk
new file mode 100644
index 000000000000..143f6bc3850a
--- /dev/null
+++ b/solenv/gbuild/AllLangHelp.mk
@@ -0,0 +1,166 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+gb_AllLangHelp_HELPDIRNAME := helpcontent2
+gb_AllLangHelp_AUXDIRNAME := auxiliary
+gb_AllLangHelp_HELPDIR := $(gb_AllLangHelp_HELPDIRNAME)/source
+gb_AllLangHelp_AUXDIR := $(gb_AllLangHelp_HELPDIR)/$(gb_AllLangHelp_AUXDIRNAME)
+gb_AllLangHelp_TRANLATIONSDIR := $(SRCDIR)/translations
+
+# class AllLangHelp
+
+# Creates and delivers all language versions of a module.
+
+gb_AllLangHelp_LANGS := $(gb_WITH_LANG)
+
+define gb_AllLangHelp__translation_exists
+$(or \
+ $(filter en-US,$(1)),\
+ $(and \
+ $(wildcard $(SRCDIR)/$(gb_AllLangHelp_AUXDIR)/$(1)),\
+ $(wildcard $(gb_AllLangHelp_TRANLATIONSDIR)/source/$(1)/$(gb_AllLangHelp_HELPDIRNAME)) \
+ ) \
+)
+endef
+
+gb_AllLangHelp__get_helpname = $(1)/$(2)
+gb_AllLangHelp__get_zipname = $(1)_$(2)
+
+$(dir $(call gb_AllLangHelp_get_target,%)).dir :
+ $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
+
+$(dir $(call gb_AllLangHelp_get_target,%))%/.dir :
+ $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
+
+$(call gb_AllLangHelp_get_target,%) :
+ $(call gb_Output_announce,$*,$(true),ALH,5)
+ touch $@
+
+$(call gb_AllLangHelp_get_clean_target,%) :
+ $(call gb_Output_announce,$*,$(false),ALH,5)
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -f $(call gb_AllLangHelp_get_target,$*) $(HELP_DELIVERABLES) \
+ )
+
+# gb_AllLangHelp_AllLangHelp__one_lang module lang helpname zipname
+define gb_AllLangHelp_AllLangHelp__one_lang
+$(call gb_HelpTarget_HelpTarget,$(3),$(1),$(2))
+$(call gb_HelpTarget_set_configdir,$(3),$(gb_AllLangHelp_AUXDIR))
+$(call gb_HelpTarget_set_helpdir,$(3),$(gb_AllLangHelp_HELPDIR))
+
+$(call gb_HelpTarget_get_outdir_target,$(4)) : $(call gb_HelpTarget_get_zipfile,$(3))
+$(call gb_AllLangHelp_get_target,$(1)) : $(call gb_HelpTarget_get_outdir_target,$(4))
+$(call gb_AllLangHelp_get_target,$(1)) : $(call gb_HelpTarget_get_target,$(3))
+$(call gb_AllLangHelp_get_clean_target,$(1)) : $(call gb_HelpTarget_get_clean_target,$(3))
+$(call gb_AllLangHelp_get_clean_target,$(1)) : HELP_DELIVERABLES += $(call gb_HelpTarget_get_outdir_target,$(4))
+
+$(call gb_Deliver_add_deliverable,$(call gb_HelpTarget_get_outdir_target,$(4)),$(call gb_HelpTarget_get_zipfile,$(3)),$(1))
+
+endef
+
+# Create and deliver help packs for a module for all languages.
+#
+# gb_AllLangHelp_AllLangHelp module
+define gb_AllLangHelp_AllLangHelp
+$(call gb_AllLangHelp_get_clean_target,$(1)) : HELP_DELIVERABLES :=
+
+$(foreach lang,$(gb_AllLangHelp_LANGS),\
+ $(if $(call gb_AllLangHelp__translation_exists,$(lang)),\
+ $(call gb_AllLangHelp_AllLangHelp__one_lang,$(1),$(lang),$(call gb_AllLangHelp__get_helpname,$(1),$(lang)),$(call gb_AllLangHelp__get_zipname,$(1),$(lang)))))
+
+$(call gb_AllLangHelp_get_target,$(1)) :| $(dir $(call gb_AllLangHelp_get_target,$(1))).dir
+
+$$(eval $$(call gb_Module_register_target,$(call gb_AllLangHelp_get_target,$(1)),$(call gb_AllLangHelp_get_clean_target,$(1))))
+$(call gb_Helper_make_userfriendly_targets,$(1),AllLangHelp)
+
+endef
+
+# gb_AllLangHelp_set_treefile module treefile
+define gb_AllLangHelp_set_treefile
+$(foreach lang,$(gb_AllLangHelp_LANGS),$(call gb_HelpTarget_set_treefile,$(call gb_AllLangHelp__get_helpname,$(1),$(lang)),$(2),$(gb_AllLangHelp_HELPDIR)/text))
+
+endef
+
+# Add a help file.
+#
+# gb_AllLangHelp_add_helpfile module file
+define gb_AllLangHelp_add_helpfile
+$(foreach lang,$(gb_AllLangHelp_LANGS),$(call gb_HelpTarget_add_helpfile,$(call gb_AllLangHelp__get_helpname,$(1),$(lang)),$(2)))
+
+endef
+
+# Add one or more help files.
+#
+# gb_AllLangHelp_add_helpfiles module file(s)
+define gb_AllLangHelp_add_helpfiles
+$(foreach lang,$(gb_AllLangHelp_LANGS),$(call gb_HelpTarget_add_helpfiles,$(call gb_AllLangHelp__get_helpname,$(1),$(lang)),$(2)))
+
+endef
+
+# Add additional localized file to the help pack.
+#
+# gb_AllLangHelp_add_localized_file module basedir file
+define gb_AllLangHelp_add_localized_file
+$(foreach lang,$(gb_AllLangHelp_LANGS),$(call gb_HelpTarget_add_file,$(call gb_AllLangHelp__get_helpname,$(1),$(lang)),$(2)/$(lang)/$(3)))
+
+endef
+
+# Add additional localized file(s) to the help pack.
+#
+# gb_AllLangHelp_add_localized_files module basedir file(s)
+define gb_AllLangHelp_add_localized_files
+$(foreach lang,$(gb_AllLangHelp_LANGS),$(call gb_HelpTarget_add_files,$(call gb_AllLangHelp__get_helpname,$(1),$(lang)),$(addprefix $(2)/$(lang)/,$(3))))
+
+endef
+
+# gb_AllLangHelp__use_module module other-module lang
+define gb_AllLangHelp__use_module
+$(call gb_HelpTarget_use_module,$(call gb_AllLangHelp__get_helpname,$(1),$(3)),$(call gb_AllLangHelp__get_helpname,$(2),$(3)))
+
+endef
+
+# Use references from another help module's files.
+#
+# gb_AllLangHelp_use_module module other-module
+define gb_AllLangHelp_use_module
+$(foreach lang,$(gb_AllLangHelp_LANGS),$(call gb_AllLangHelp__use_module,$(1),$(2),$(lang)))
+
+endef
+
+# Use references from other help modules' files.
+#
+# gb_AllLangHelp_use_module module other-module(s)
+define gb_AllLangHelp_use_modules
+$(foreach module,$(2),$(call gb_AllLangHelp_use_module,$(1),$(module)))
+
+endef
+
+# gb_AllLangHelp__use_linked_module module other-module lang
+define gb_AllLangHelp__use_linked_module
+$(call gb_HelpTarget_use_linked_module,$(call gb_AllLangHelp__get_helpname,$(1),$(3)),$(call gb_AllLangHelp__get_helpname,$(2),$(3)))
+
+endef
+
+# Link with another help module.
+#
+# gb_AllLangHelp_use_linked_module module other-module
+define gb_AllLangHelp_use_linked_module
+$(foreach lang,$(gb_AllLangHelp_LANGS),$(call gb_AllLangHelp__use_linked_module,$(1),$(2),$(lang)))
+
+endef
+
+# Link with other help module(s).
+#
+# gb_AllLangHelp_use_linked_module module other-module(s)
+define gb_AllLangHelp_use_linked_modules
+$(foreach module,$(2),$(call gb_AllLangHelp_use_linked_module,$(1),$(module)))
+
+endef
+
+# vim: set noet sw=4 ts=4: