f127fa685d
that parameter did specify how many entries of the list the workaround method could use to not exceed commandline length limits, so it was a guess of sorts and many places didn't actually bother with tweaking that value anyway and just used 100. the $(file …) function doesn't care about that, so the parameter was always ignored in that case. Change-Id: If89ec3a1968be297c0fe7c65336c5a965598f0c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143911 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
401 lines
15 KiB
Makefile
401 lines
15 KiB
Makefile
# -*- 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/.
|
|
#
|
|
|
|
# ThesaurusIndexTarget class
|
|
|
|
gb_ThesaurusIndexTarget_CHECK_TARGET := $(SRCDIR)/dictionaries/util/th_check.pl
|
|
gb_ThesaurusIndexTarget_CHECK_COMMAND := PERL_UNICODE=0 $(PERL) -w $(gb_ThesaurusIndexTarget_CHECK_TARGET)
|
|
gb_ThesaurusIndexTarget_INDEX_DEPS := $(call gb_Executable_get_runtime_dependencies,idxdict)
|
|
gb_ThesaurusIndexTarget_INDEX_COMMAND := $(call gb_Executable_get_command,idxdict)
|
|
|
|
define gb_ThesaurusIndexTarget__command
|
|
$(call gb_Helper_abbreviate_dirs,\
|
|
$(gb_ThesaurusIndexTarget_INDEX_COMMAND) -o $(1) < $(THESAURUS_FILE) \
|
|
)
|
|
endef
|
|
#$(gb_ThesaurusIndexTarget_CHECK_COMMAND) $(THESAURUS_FILE) && \
|
|
|
|
$(dir $(call gb_ThesaurusIndexTarget_get_target,%)).dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(dir $(call gb_ThesaurusIndexTarget_get_target,%))%/.dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(call gb_ThesaurusIndexTarget_get_target,%) : $(gb_ThesaurusIndexTarget_INDEX_DEPS) | $(gb_ThesaurusIndexTarget_CHECK_TARGET)
|
|
$(call gb_Output_announce,$*,$(true),THI,1)
|
|
$(call gb_Trace_StartRange,$*,THI)
|
|
$(call gb_ThesaurusIndexTarget__command,$@,$*)
|
|
$(call gb_Trace_EndRange,$*,THI)
|
|
|
|
.PHONY : $(call gb_ThesaurusIndexTarget_get_clean_target,%)
|
|
$(call gb_ThesaurusIndexTarget_get_clean_target,%) :
|
|
$(call gb_Output_announce,$*,$(false),THI,1)
|
|
$(call gb_Helper_abbreviate_dirs,\
|
|
rm -f $(call gb_ThesaurusIndexTarget_get_target,$*) \
|
|
)
|
|
|
|
# Creates an index for a given thesaurus
|
|
#
|
|
# The thesaurus' file path is relative to $(SRCDIR).
|
|
#
|
|
# gb_ThesaurusIndexTarget_ThesaurusIndexTarget thesaurus
|
|
define gb_ThesaurusIndexTarget_ThesaurusIndexTarget
|
|
$(call gb_ThesaurusIndexTarget_get_target,$(1)) : THESAURUS_FILE := $(SRCDIR)/$(1)
|
|
$(call gb_ThesaurusIndexTarget_get_target,$(1)) : $(SRCDIR)/$(1)
|
|
$(call gb_ThesaurusIndexTarget_get_target,$(1)) :| $(dir $(call gb_ThesaurusIndexTarget_get_target,$(1))).dir
|
|
|
|
endef
|
|
|
|
# PropertiesTranslateTarget class
|
|
|
|
# Handles translation of .properties files in dictionaries.
|
|
|
|
gb_PropertiesTranslateTarget_COMMAND := $(call gb_Executable_get_command,propex)
|
|
gb_PropertiesTranslateTarget_DEPS := $(call gb_Executable_get_runtime_dependencies,propex)
|
|
|
|
define gb_PropertiesTranslateTarget__command
|
|
$(call gb_Helper_abbreviate_dirs, \
|
|
$(if $(filter-out qtz,$(LANGUAGE)), \
|
|
MERGEINPUT=$(call gb_var2file,$(shell $(gb_MKTEMP)),$(POFILE)) && \
|
|
$(gb_PropertiesTranslateTarget_COMMAND) \
|
|
-i $(PROPERTIES_FILE) \
|
|
-l $(LANGUAGE) \
|
|
-m $${MERGEINPUT} \
|
|
-o $(1) && \
|
|
rm -f $${MERGEINPUT} \
|
|
, \
|
|
$(gb_PropertiesTranslateTarget_COMMAND) \
|
|
-i $(PROPERTIES_FILE) \
|
|
-l $(LANGUAGE) \
|
|
-m \
|
|
-o $(1) \
|
|
) \
|
|
)
|
|
endef
|
|
|
|
$(dir $(call gb_PropertiesTranslateTarget_get_target,%)).dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(dir $(call gb_PropertiesTranslateTarget_get_target,%))%/.dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(call gb_PropertiesTranslateTarget_get_target,%) : $(gb_PropertiesTranslateTarget_DEPS)
|
|
$(call gb_Output_announce,$*,$(true),PRP,1)
|
|
$(call gb_Trace_StartRange,$*,PRP)
|
|
$(call gb_PropertiesTranslateTarget__command,$@,$*)
|
|
$(call gb_Trace_EndRange,$*,PRP)
|
|
|
|
.PHONY : $(call gb_PropertiesTranslateTarget_get_clean_target,%)
|
|
$(call gb_PropertiesTranslateTarget_get_clean_target,%) :
|
|
$(call gb_Output_announce,$*,$(false),PRP,1)
|
|
rm -f $(call gb_PropertiesTranslateTarget_get_target,$*)
|
|
|
|
# gb_PropertiesTranslateTarget_PropertiesTranslateTarget target source lang
|
|
define gb_PropertiesTranslateTarget_PropertiesTranslateTarget
|
|
$(call gb_PropertiesTranslateTarget_get_target,$(1)) : LANGUAGE := $(3)
|
|
$(call gb_PropertiesTranslateTarget_get_target,$(1)) : POFILE := $(gb_POLOCATION)/$(3)/$(patsubst %/,%,$(dir $(2))).po
|
|
$(call gb_PropertiesTranslateTarget_get_target,$(1)) : PROPERTIES_FILE := $(SRCDIR)/$(2)
|
|
|
|
$(call gb_PropertiesTranslateTarget_get_target,$(1)) : $(SRCDIR)/$(2)
|
|
$(call gb_PropertiesTranslateTarget_get_target,$(1)) :| $(dir $(call gb_PropertiesTranslateTarget_get_target,$(1))).dir
|
|
|
|
$(if $(filter-out qtz,$(3)),\
|
|
$(call gb_PropertiesTranslateTarget__PropertiesTranslateTarget_onelang,$(1),$(gb_POLOCATION)/$(3)/$(patsubst %/,%,$(dir $(2))).po) \
|
|
)
|
|
|
|
endef
|
|
|
|
# gb_PropertiesTranslateTarget__PropertiesTranslateTarget_onelang target pofile
|
|
define gb_PropertiesTranslateTarget__PropertiesTranslateTarget_onelang
|
|
$(call gb_PropertiesTranslateTarget_get_target,$(1)) : $(2)
|
|
$(2) :
|
|
|
|
endef
|
|
|
|
# DescriptionTranslateTarget class
|
|
|
|
# Handles translation of description.xml files in dictionaries.
|
|
|
|
gb_DescriptionTranslateTarget_COMMAND := $(call gb_Executable_get_command,xrmex)
|
|
gb_DescriptionTranslateTarget_DEPS := $(call gb_Executable_get_runtime_dependencies,xrmex)
|
|
|
|
define gb_DescriptionTranslateTarget__command
|
|
$(call gb_Helper_abbreviate_dirs,\
|
|
MERGEINPUT=$(call gb_var2file,$(shell $(gb_MKTEMP)),$(POFILES)) && \
|
|
$(gb_DescriptionTranslateTarget_COMMAND) \
|
|
-i $(DESCRIPTION_XML) \
|
|
-l all \
|
|
-m $${MERGEINPUT} \
|
|
-o $(1) && \
|
|
rm -f $${MERGEINPUT} \
|
|
)
|
|
endef
|
|
|
|
$(dir $(call gb_DescriptionTranslateTarget_get_target,%)).dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(dir $(call gb_DescriptionTranslateTarget_get_target,%))%/.dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(call gb_DescriptionTranslateTarget_get_target,%) : $(gb_DescriptionTranslateTarget_DEPS)
|
|
$(call gb_Output_announce,$*,$(true),XRM,1)
|
|
$(call gb_Trace_StartRange,$*,XRM)
|
|
$(call gb_DescriptionTranslateTarget__command,$@,$*)
|
|
$(call gb_Trace_EndRange,$*,XRM)
|
|
|
|
.PHONY : $(call gb_DescriptionTranslateTarget_get_clean_target,%)
|
|
$(call gb_DescriptionTranslateTarget_get_clean_target,%) :
|
|
$(call gb_Output_announce,$*,$(false),XRM,1)
|
|
rm -f $(call gb_DescriptionTranslateTarget_get_target,$*)
|
|
|
|
# gb_DescriptionTranslateTarget_DescriptionTranslateTarget target source langs
|
|
define gb_DescriptionTranslateTarget_DescriptionTranslateTarget
|
|
$(call gb_DescriptionTranslateTarget_get_target,$(1)) : DESCRIPTION_XML := $(SRCDIR)/$(2)
|
|
$(call gb_DescriptionTranslateTarget_get_target,$(1)) : POFILES :=
|
|
|
|
$(call gb_DescriptionTranslateTarget_get_target,$(1)) : $(SRCDIR)/$(2)
|
|
$(call gb_DescriptionTranslateTarget_get_target,$(1)) :| $(dir $(call gb_DescriptionTranslateTarget_get_target,$(1))).dir
|
|
|
|
$(foreach lang,$(3),\
|
|
$(call gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang,$(1),$(patsubst %/,%,$(dir $(2))),$(lang)) \
|
|
)
|
|
|
|
endef
|
|
|
|
# gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang target pobase lang
|
|
define gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang
|
|
$(call gb_DescriptionTranslateTarget_get_target,$(1)) : POFILES += $(if $(filter-out qtz,$(3)),$(gb_POLOCATION)/$(3)/$(2).po)
|
|
$(if $(filter-out qtz,$(3)),\
|
|
$(call gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang_podeps,$(1),$(gb_POLOCATION)/$(3)/$(2).po))
|
|
|
|
endef
|
|
|
|
# gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang_podeps target pofile
|
|
define gb_DescriptionTranslateTarget__DescriptionTranslateTarget_onelang_podeps
|
|
$(call gb_DescriptionTranslateTarget_get_target,$(1)) : $(2)
|
|
$(2) :
|
|
|
|
endef
|
|
|
|
# Dictionary class
|
|
|
|
# Handles creation and delivery of dictionary extensions.
|
|
#
|
|
# This class provides a filelist called Dictionary/<name> that contains
|
|
# all installed files of the dictionary.
|
|
|
|
gb_Dictionary_ALL_LANGS := $(filter-out en-US,$(gb_WITH_LANG))
|
|
gb_Dictionary_INSTDIR := $(LIBO_SHARE_FOLDER)/extensions
|
|
|
|
$(dir $(call gb_Dictionary_get_target,%)).dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(dir $(call gb_Dictionary_get_target,%))%/.dir :
|
|
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
|
|
|
|
$(call gb_Dictionary_get_target,%) :
|
|
$(call gb_Output_announce,$*,$(true),DIC,3)
|
|
$(call gb_Trace_MakeMark,$*,DIC)
|
|
touch $@
|
|
|
|
.PHONY : $(call gb_Dictionary_get_clean_target,%)
|
|
$(call gb_Dictionary_get_clean_target,%) :
|
|
$(call gb_Output_announce,$*,$(false),DIC,3)
|
|
rm -f $(call gb_Dictionary_get_target,$*)
|
|
|
|
gb_Dictionary_get_packagename = Dictionary/$(1)
|
|
gb_Dictionary_get_packagesetname = Dictionary/$(1)
|
|
|
|
# Creates a dictionary extension
|
|
#
|
|
# gb_Dictionary_Dictionary dictionary srcdir
|
|
define gb_Dictionary_Dictionary
|
|
$(call gb_Package_Package_internal,$(call gb_Dictionary_get_packagename,$(1)),$(SRCDIR))
|
|
$(call gb_Package_Package_internal,$(call gb_Dictionary_get_packagename,$(1)_generated),$(WORKDIR))
|
|
$(call gb_PackageSet_PackageSet_internal,$(call gb_Dictionary_get_packagesetname,$(1)))
|
|
|
|
$(call gb_PackageSet_add_package,$(call gb_Dictionary_get_packagesetname,$(1)),$(call gb_Dictionary_get_packagename,$(1)))
|
|
|
|
ifeq (,$(gb_Dictionary_ALL_LANGS))
|
|
$(call gb_Dictionary_add_root_file,$(1),$(2)/description.xml)
|
|
else
|
|
$(call gb_Dictionary__add_description_translations,$(1),$(2)/description.xml)
|
|
endif
|
|
$(call gb_Dictionary_add_root_file,$(1),$(2)/dictionaries.xcu)
|
|
$(call gb_Dictionary_add_file,$(1),META-INF/manifest.xml,$(2)/META-INF/manifest.xml)
|
|
|
|
$(call gb_Dictionary_get_target,$(1)) : $(call gb_PackageSet_get_target,$(call gb_Dictionary_get_packagesetname,$(1)))
|
|
$(call gb_Dictionary_get_target,$(1)) :| $(dir $(call gb_Dictionary_get_target,$(1))).dir
|
|
$(call gb_Dictionary_get_clean_target,$(1)) : $(call gb_PackageSet_get_clean_target,$(call gb_Dictionary_get_packagesetname,$(1)))
|
|
|
|
$$(eval $$(call gb_Module_register_target,$(call gb_Dictionary_get_target,$(1)),$(call gb_Dictionary_get_clean_target,$(1))))
|
|
$(call gb_Helper_make_userfriendly_targets,$(1),Dictionary)
|
|
|
|
endef
|
|
|
|
# gb_Dictionary__add_description_translation_impl dictionary desctarget descxml
|
|
define gb_Dictionary__add_description_translation_impl
|
|
$(call gb_DescriptionTranslateTarget_DescriptionTranslateTarget,$(2),$(3),$(gb_Dictionary_ALL_LANGS))
|
|
$(call gb_Dictionary_add_generated_file,$(1),description.xml,$(call gb_DescriptionTranslateTarget_get_target,$(2)))
|
|
|
|
$(call gb_Dictionary_get_target,$(1)) : $(call gb_DescriptionTranslateTarget_get_target,$(2))
|
|
$(call gb_Dictionary_get_clean_target,$(1)) : $(call gb_DescriptionTranslateTarget_get_clean_target,$(2))
|
|
|
|
endef
|
|
|
|
# gb_Dictionary__add_description_translations dictionary descxml
|
|
define gb_Dictionary__add_description_translations
|
|
$(call gb_Dictionary__add_description_translation_impl,$(1),$(basename $(2)),$(2))
|
|
|
|
endef
|
|
|
|
# gb_Dictionary__add_file dictionary package-base destfile sourcefile
|
|
define gb_Dictionary__add_file
|
|
$(call gb_Package_add_file,$(call gb_Dictionary_get_packagename,$(2)),$(gb_Dictionary_INSTDIR)/$(1)/$(3),$(4))
|
|
|
|
endef
|
|
|
|
# Adds a file from $(SRCDIR) to the dictionary under chosen name
|
|
#
|
|
# gb_Dictionary_add_file dictionary destfile sourcefile
|
|
define gb_Dictionary_add_file
|
|
$(call gb_Dictionary__add_file,$(1),$(1),$(2),$(3))
|
|
|
|
endef
|
|
|
|
# Adds several files from $(SRCDIR) to the dictionary at once
|
|
#
|
|
# The files are put into the chosen directory.
|
|
#
|
|
# gb_Dictionary_add_files dictionary destdir file(s)
|
|
define gb_Dictionary_add_files
|
|
$(foreach file,$(3),$(call gb_Dictionary_add_file,$(1),$(2)/$(notdir $(file)),$(file)))
|
|
|
|
endef
|
|
|
|
# Adds an arbitrary file to the dictionary under chosen name
|
|
#
|
|
# gb_Dictionary_add_file dictionary destfile sourcefile
|
|
define gb_Dictionary_add_generated_file
|
|
$(call gb_Dictionary__add_file,$(1),$(1)_generated,$(2),$(subst $(WORKDIR)/,,$(3)))
|
|
$(call gb_PackageSet_add_package,$(call gb_Dictionary_get_packagesetname,$(1)),$(call gb_Dictionary_get_packagename,$(1)_generated))
|
|
|
|
endef
|
|
|
|
# Adds several arbitrary files to the dictionary at once
|
|
#
|
|
# The files are put into the chosen directory.
|
|
#
|
|
# gb_Dictionary_add_files dictionary destdir file(s)
|
|
define gb_Dictionary_add_generated_files
|
|
$(foreach file,$(3),$(call gb_Dictionary_add_generated_file,$(1),$(2)/$(notdir $(file)),$(file)))
|
|
|
|
endef
|
|
|
|
# Adds a localized xcu file, which needs special handling because it may be
|
|
# in $(WORKDIR) or $(SRCDIR) depending on whether translations are built.
|
|
#
|
|
# gb_Dictionary_add_localized_xcu_file dictionary destdir file
|
|
define gb_Dictionary_add_localized_xcu_file
|
|
ifeq ($(gb_WITH_LANG),)
|
|
$(call gb_Dictionary__add_file,$(1),$(1),$(2)/$(notdir $(3)),$(strip $(3)))
|
|
else
|
|
$(call gb_Dictionary__add_file,$(1),$(1)_generated,$(2)/$(notdir $(3)),$(subst $(WORKDIR)/,,$(call gb_XcuFile_for_extension,$(strip $(3)))))
|
|
$(call gb_PackageSet_add_package,$(call gb_Dictionary_get_packagesetname,$(1)),$(call gb_Dictionary_get_packagename,$(1)_generated))
|
|
endif
|
|
|
|
endef
|
|
|
|
# Adds a file to the root dir of the dictionary
|
|
#
|
|
# gb_Dictionary_add_root_file dictionary file
|
|
define gb_Dictionary_add_root_file
|
|
$(call gb_Dictionary_add_file,$(1),$(notdir $(2)),$(2))
|
|
|
|
endef
|
|
|
|
# Adds several files to the root dir of the dictionary
|
|
#
|
|
# gb_Dictionary_add_root_files dictionary file(s)
|
|
define gb_Dictionary_add_root_files
|
|
$(foreach file,$(2),$(call gb_Dictionary_add_root_file,$(1),$(file)))
|
|
|
|
endef
|
|
|
|
define gb_Dictionary__add_thesaurus
|
|
$(call gb_Dictionary__add_file,$(1),$(1)_generated,$(notdir $(3)),$(subst $(WORKDIR)/,,$(3)))
|
|
$(call gb_PackageSet_add_package,$(call gb_Dictionary_get_packagesetname,$(1)),$(call gb_Dictionary_get_packagename,$(1)_generated))
|
|
|
|
endef
|
|
|
|
# Adds a thesaurus to the dictionary
|
|
#
|
|
# An index for the thesaurus is generated and added to the dictionary as
|
|
# well.
|
|
#
|
|
# gb_Dictionary_add_thesaurus dictionary thesaurus
|
|
define gb_Dictionary_add_thesaurus
|
|
$(call gb_ThesaurusIndexTarget_ThesaurusIndexTarget,$(2))
|
|
$(call gb_Dictionary_add_root_file,$(1),$(2))
|
|
$(call gb_Dictionary__add_thesaurus,$(1),$(2),$(call gb_ThesaurusIndexTarget_get_target,$(2)))
|
|
|
|
endef
|
|
|
|
# Adds several thesauri to the dictionary at once
|
|
#
|
|
# Indexes for the thesauri are generated and added to the dictionary as
|
|
# well.
|
|
#
|
|
# gb_Dictionary_add_thesauri dictionary thesauri
|
|
define gb_Dictionary_add_thesauri
|
|
$(foreach thesaurus,$(2),$(call gb_Dictionary_add_thesaurus,$(1),$(thesaurus)))
|
|
|
|
endef
|
|
|
|
# gb_Dictionary__translate_propertyfile_impl dictionary destfile propertyfile propertyname lang
|
|
define gb_Dictionary__translate_propertyfile_impl
|
|
$(call gb_PropertiesTranslateTarget_PropertiesTranslateTarget,$(4),$(3),$(5))
|
|
$(call gb_Dictionary_add_generated_file,$(1),$(2),$(call gb_PropertiesTranslateTarget_get_target,$(4)))
|
|
|
|
endef
|
|
|
|
# gb_Dictionary__translate_propertyfile dictionary destdir propertyfile propertyname lang
|
|
define gb_Dictionary__translate_propertyfile
|
|
$(call gb_Dictionary__translate_propertyfile_impl,$(1),$(2)$(notdir $(4)).properties,$(3),$(4),$(5))
|
|
|
|
endef
|
|
|
|
# gb_Dictionary__add_propertyfile_translations dictionary destfile propertyfile
|
|
define gb_Dictionary__add_propertyfile_translations
|
|
$(foreach lang,$(gb_Dictionary_ALL_LANGS),$(call gb_Dictionary__translate_propertyfile,$(1),$(dir $(2)),$(3),$(subst en_US,$(subst -,_,$(lang)),$(basename $(3))),$(lang)))
|
|
|
|
endef
|
|
|
|
# Adds a .property file to the dictionary under chosen name
|
|
#
|
|
# The file is localized automatically.
|
|
#
|
|
# gb_Dictionary_add_propertyfile dictionary destfile propertyfile
|
|
define gb_Dictionary_add_propertyfile
|
|
$(call gb_Dictionary__add_file,$(1),$(1),$(2),$(3))
|
|
$(call gb_Dictionary__add_propertyfile_translations,$(1),$(2),$(3))
|
|
|
|
endef
|
|
|
|
# Adds several .property files to the dictionary at once
|
|
#
|
|
# The files are put into chosen directory. They are localized automatically.
|
|
#
|
|
# gb_Dictionary_add_propertyfiles dictionary destdir propertyfile(s)
|
|
define gb_Dictionary_add_propertyfiles
|
|
$(foreach propertyfile,$(3),$(call gb_Dictionary_add_propertyfile,$(1),$(2)/$(notdir $(propertyfile)),$(propertyfile)))
|
|
|
|
endef
|
|
|
|
# vim: set noet sw=4 ts=4:
|