diff options
author | David Tardon <dtardon@redhat.com> | 2013-02-26 15:00:59 +0100 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-02-26 15:24:54 +0100 |
commit | 0909384b98deeaa9e788b30be46e6c81b9adc68b (patch) | |
tree | 0a16605dfa6d3167ef2a27e2e6251714e453edfb /solenv/gbuild/AllLangHelp.mk | |
parent | 38c8b84c7f3e20c77ab87c7082c21e7bc44d82dc (diff) |
add support for building help packs into gbuild
Change-Id: I1cc5600ab0f6236c451d07bfb5ad9ee42ea4754a
Diffstat (limited to 'solenv/gbuild/AllLangHelp.mk')
-rw-r--r-- | solenv/gbuild/AllLangHelp.mk | 166 |
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: |