office-gobmx/i18npool/CustomTarget_collator.mk
Eike Rathke 2d843bb104 upgrade to ICU 53.1, fdo#77071 related
plus further work in i18npool to make that build

adapt i18npool to ICU 53 upgrade, fdo#77071

Korean charset collator can't be built from ko_charset.txt because of

"The runtime code decomposes Hangul syllables on the fly, with recursive
processing but without making the Jamo pieces visible for matching. It
does not work with certain types of contextual mappings."
"While handling a Hangul syllable, contractions starting with Jamo L or
V would not see the following Jamo of that syllable." (this is where we
bail out already with the first syllable of ko_charset.txt)
Another condition to fail is described as "A contraction ending with
Jamo L or L+V would require generating Hangul syllables in
addTailComposites() (588 for a Jamo L), or decomposing a following
Hangul syllable on the fly, during contraction matching."

Excluded the file from the build for ICU >=53 and hope that ICU in the
mean time handles Korean collation correctly.

Additionally, ICU 53 took ages (if it would had finished at all) to
build the collator from zh_TW_charset.txt because of the \u#### escaped
notation. Converted the file's content to characters using
http://www.rishida.net/tools/conversion/

Change-Id: I64213214b4870e7077f72b95fee1ddc9782c2b21
Reviewed-on: https://gerrit.libreoffice.org/9204
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
2014-04-29 18:28:15 +00:00

66 lines
2.4 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/.
#
$(eval $(call gb_CustomTarget_CustomTarget,i18npool/collator))
i18npool_CODIR := $(call gb_CustomTarget_get_workdir,i18npool/collator)
i18npool_COTXTS := \
$(call gb_Helper_optional_locale,ca, \
ca_charset.txt) \
$(call gb_Helper_optional_locale,dz, \
dz_charset.txt) \
$(call gb_Helper_optional_locale,hu, \
hu_charset.txt) \
$(call gb_Helper_optional_locale,ja, \
ja_charset.txt \
ja_phonetic_alphanumeric_first.txt \
ja_phonetic_alphanumeric_last.txt) \
$(if $(i18npool_ICULT53), \
$(call gb_Helper_optional_locale,ko, \
ko_charset.txt) \
) \
$(call gb_Helper_optional_locale,ku, \
ku_alphanumeric.txt) \
$(call gb_Helper_optional_locale,ln, \
ln_charset.txt) \
$(call gb_Helper_optional_locale,my, \
my_dictionary.txt) \
$(call gb_Helper_optional_locale,ne, \
ne_charset.txt) \
$(call gb_Helper_optional_locale,sid, \
sid_charset.txt) \
$(call gb_Helper_optional_locale,zh, \
zh_charset.txt \
zh_pinyin.txt \
zh_radical.txt \
zh_stroke.txt \
zh_TW_charset.txt \
zh_TW_radical.txt \
zh_TW_stroke.txt \
zh_zhuyin.txt)
$(call gb_CustomTarget_get_target,i18npool/collator) : $(SRCDIR)/i18npool/CustomTarget_collator.mk \
$(i18npool_CODIR)/lrl_include.hxx $(foreach txt,$(i18npool_COTXTS), \
$(patsubst %.txt,$(i18npool_CODIR)/collator_%.cxx,$(txt)))
$(i18npool_CODIR)/collator_%.cxx : \
$(SRCDIR)/i18npool/source/collator/data/%.txt \
$(call gb_Executable_get_runtime_dependencies,gencoll_rule) \
| $(i18npool_CODIR)/.dir
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CLR,1)
$(call gb_Helper_abbreviate_dirs, \
$(call gb_Helper_execute,gencoll_rule) $< $@ $*)
$(i18npool_CODIR)/lrl_include.hxx : $(SRCDIR)/i18npool/CustomTarget_collator.mk \
$(SRCDIR)/i18npool/source/collator/data | $(i18npool_CODIR)/.dir
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
echo '#define LOCAL_RULE_LANGS "$(sort $(foreach txt,$(i18npool_COTXTS), \
$(firstword $(subst _, ,$(txt)))))"' > $@
# vim: set noet sw=4 ts=4: