xref: /trunk/main/i18npool/Library_i18npool.mk (revision 69cbe00d)
17f6ffbefSDamjan Jovanovic#**************************************************************
27f6ffbefSDamjan Jovanovic#
37f6ffbefSDamjan Jovanovic#  Licensed to the Apache Software Foundation (ASF) under one
47f6ffbefSDamjan Jovanovic#  or more contributor license agreements.  See the NOTICE file
57f6ffbefSDamjan Jovanovic#  distributed with this work for additional information
67f6ffbefSDamjan Jovanovic#  regarding copyright ownership.  The ASF licenses this file
77f6ffbefSDamjan Jovanovic#  to you under the Apache License, Version 2.0 (the
87f6ffbefSDamjan Jovanovic#  "License"); you may not use this file except in compliance
97f6ffbefSDamjan Jovanovic#  with the License.  You may obtain a copy of the License at
107f6ffbefSDamjan Jovanovic#
117f6ffbefSDamjan Jovanovic#    http://www.apache.org/licenses/LICENSE-2.0
127f6ffbefSDamjan Jovanovic#
137f6ffbefSDamjan Jovanovic#  Unless required by applicable law or agreed to in writing,
147f6ffbefSDamjan Jovanovic#  software distributed under the License is distributed on an
157f6ffbefSDamjan Jovanovic#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
167f6ffbefSDamjan Jovanovic#  KIND, either express or implied.  See the License for the
177f6ffbefSDamjan Jovanovic#  specific language governing permissions and limitations
187f6ffbefSDamjan Jovanovic#  under the License.
197f6ffbefSDamjan Jovanovic#
207f6ffbefSDamjan Jovanovic#**************************************************************
217f6ffbefSDamjan Jovanovic
227f6ffbefSDamjan Jovanovic
237f6ffbefSDamjan Jovanovic
247f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_Library,i18npool))
257f6ffbefSDamjan Jovanovic
267f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_package_headers,i18npool,i18npool_inc))
277f6ffbefSDamjan Jovanovic
287f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_precompiled_header,i18npool,$(SRCDIR)/i18npool/inc/pch/precompiled_i18npool))
297f6ffbefSDamjan Jovanovic
307f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_set_componentfile,i18npool,i18npool/util/i18npool))
317f6ffbefSDamjan Jovanovic
327f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_set_include,i18npool,\
337f6ffbefSDamjan Jovanovic	$$(INCLUDE) \
347f6ffbefSDamjan Jovanovic	-I$(SRCDIR)/i18npool/inc \
357f6ffbefSDamjan Jovanovic	-I$(SRCDIR)/i18npool/inc/pch \
367f6ffbefSDamjan Jovanovic	-I$(WORKDIR)/CustomTarget/i18npool/source/collator \
377f6ffbefSDamjan Jovanovic	-I$(OUTDIR)/inc \
387f6ffbefSDamjan Jovanovic))
397f6ffbefSDamjan Jovanovic
407f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_api,i18npool, \
417f6ffbefSDamjan Jovanovic	offapi \
427f6ffbefSDamjan Jovanovic	udkapi \
437f6ffbefSDamjan Jovanovic))
447f6ffbefSDamjan Jovanovic
457f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_defs,i18npool,\
467f6ffbefSDamjan Jovanovic	-DI18NPOOL_DLLIMPLEMENTATION \
477f6ffbefSDamjan Jovanovic))
487f6ffbefSDamjan Jovanovic
497f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_linked_libs,i18npool,\
507f6ffbefSDamjan Jovanovic	comphelper \
517f6ffbefSDamjan Jovanovic	cppu \
527f6ffbefSDamjan Jovanovic	cppuhelper \
537f6ffbefSDamjan Jovanovic	i18nisolang1 \
547f6ffbefSDamjan Jovanovic	i18nutil \
557f6ffbefSDamjan Jovanovic	sal \
567f6ffbefSDamjan Jovanovic	stl \
577f6ffbefSDamjan Jovanovic	$(gb_STDLIBS) \
587f6ffbefSDamjan Jovanovic))
597f6ffbefSDamjan Jovanovic
607f6ffbefSDamjan Jovanovic$(call gb_Library_use_external,i18npool,icui18n)
617f6ffbefSDamjan Jovanovic$(call gb_Library_use_external,i18npool,icudata)
627f6ffbefSDamjan Jovanovic$(call gb_Library_use_external,i18npool,icuuc)
637f6ffbefSDamjan Jovanovic
647f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_exception_objects,i18npool,\
657f6ffbefSDamjan Jovanovic	i18npool/source/registerservices/registerservices \
667f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiteratorImpl \
677f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_cjk \
687f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_ctl \
697f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_th \
707f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/breakiterator_unicode \
717f6ffbefSDamjan Jovanovic	i18npool/source/breakiterator/xdictionary \
727f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/characterclassificationImpl \
737f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/cclass_unicode \
747f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/cclass_unicode_parser \
757f6ffbefSDamjan Jovanovic	i18npool/source/characterclassification/scripttypedetector \
767f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_body \
777f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_caseignore \
787f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliterationImpl \
797f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_commonclass \
807f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_OneToOne \
817f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_Ignore \
827f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/transliteration_Numeric \
837f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/hiraganaToKatakana \
847f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/katakanaToHiragana \
857f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreKana \
867f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/halfwidthToFullwidth \
877f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/fullwidthToHalfwidth \
887f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreWidth \
897f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/smallToLarge_ja_JP \
907f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/largeToSmall_ja_JP \
917f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSize_ja_JP \
927f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreMinusSign_ja_JP \
937f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreIterationMark_ja_JP \
947f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreTraditionalKana_ja_JP \
957f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreTraditionalKanji_ja_JP \
967f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP \
977f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreZiZu_ja_JP \
987f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreBaFa_ja_JP \
997f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreTiJi_ja_JP \
1007f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreHyuByu_ja_JP \
1017f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSeZe_ja_JP \
1027f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP \
1037f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP \
1047f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSeparator_ja_JP \
1057f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreSpace_ja_JP \
1067f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/ignoreMiddleDot_ja_JP \
1077f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/textToPronounce_zh \
1087f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/numtochar \
1097f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/numtotext_cjk \
1107f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/chartonum \
1117f6ffbefSDamjan Jovanovic	i18npool/source/transliteration/texttonum \
1127f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendarImpl \
1137f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendar_gregorian \
1147f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendar_hijri \
1157f6ffbefSDamjan Jovanovic	i18npool/source/calendar/calendar_jewish \
1167f6ffbefSDamjan Jovanovic	i18npool/source/numberformatcode/numberformatcode \
1177f6ffbefSDamjan Jovanovic	i18npool/source/defaultnumberingprovider/defaultnumberingprovider \
1187f6ffbefSDamjan Jovanovic	i18npool/source/nativenumber/nativenumbersupplier \
1197f6ffbefSDamjan Jovanovic	i18npool/source/inputchecker/inputsequencechecker \
1207f6ffbefSDamjan Jovanovic	i18npool/source/inputchecker/inputsequencechecker_th \
1217f6ffbefSDamjan Jovanovic	i18npool/source/inputchecker/inputsequencechecker_hi \
1227f6ffbefSDamjan Jovanovic	i18npool/source/ordinalsuffix/ordinalsuffix \
1237f6ffbefSDamjan Jovanovic	i18npool/source/localedata/localedata \
1247f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier \
1257f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_asian \
1267f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_ja_phonetic \
1277f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_default \
1287f6ffbefSDamjan Jovanovic	i18npool/source/indexentry/indexentrysupplier_common \
1297f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversionImpl \
1307f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversion \
1317f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversion_ko \
1327f6ffbefSDamjan Jovanovic	i18npool/source/textconversion/textconversion_zh \
1337f6ffbefSDamjan Jovanovic	i18npool/source/collator/collatorImpl \
1347f6ffbefSDamjan Jovanovic	i18npool/source/collator/chaptercollator \
1357f6ffbefSDamjan Jovanovic	i18npool/source/collator/collator_unicode \
1367f6ffbefSDamjan Jovanovic))
1377f6ffbefSDamjan Jovanovic
1387f6ffbefSDamjan Jovanovic$(call gb_Library_get_headers_target,i18npool) : $(WORKDIR)/CustomTarget/i18npool/source/collator/lrl_include.hxx
1397f6ffbefSDamjan Jovanovic
1407f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/collator/lrl_include.hxx : $(wildcard $(SRCDIR)/i18npool/source/collator/data/*.txt)
1417f6ffbefSDamjan Jovanovic	mkdir -p $(dir $@) \
1427f6ffbefSDamjan Jovanovic	&& LOCAL_RULE_LANGS="$(sort $(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/collator/data/*.txt),$(firstword $(subst _, ,$(notdir $(txt))))))" \
1437f6ffbefSDamjan Jovanovic	&& echo \#define LOCAL_RULE_LANGS \"$${LOCAL_RULE_LANGS}\" > $@
1447f6ffbefSDamjan Jovanovic
1457f6ffbefSDamjan Jovanovic
1467f6ffbefSDamjan Jovanovic# fdo#31271 ")" reclassified in more recent ICU/Unicode Standards
147*69cbe00dSDamjan Jovanovic-include $(OUTDIR)/inc/icuversion.mk
1487f6ffbefSDamjan JovanovicICU_RECLASSIFIED_BRACKET := $(shell [ ${ICU_MAJOR} -ge 5 -o \( ${ICU_MAJOR} -eq 4 -a ${ICU_MINOR} -ge 4 \) ] && echo YES)
1497f6ffbefSDamjan Jovanovic
1507f6ffbefSDamjan Jovanovic
1517f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.txt : $(SRCDIR)/i18npool/source/breakiterator/data/%.txt
1527f6ffbefSDamjan Jovanovicifeq ($(ICU_RECLASSIFIED_BRACKET),YES)
1537f6ffbefSDamjan Jovanovic	mkdir -p $(dir $@) && \
1547f6ffbefSDamjan Jovanovic	sed "s#\[:LineBreak =  Close_Punctuation:\]#\[\[:LineBreak =  Close_Punctuation:\] \[:LineBreak = Close_Parenthesis:\]\]#" $< > $@
1557f6ffbefSDamjan Jovanovicelse
1567f6ffbefSDamjan Jovanovic	mkdir -p $(dir $@) && \
1577f6ffbefSDamjan Jovanovic	cp $< $@
1587f6ffbefSDamjan Jovanovicendif
1597f6ffbefSDamjan Jovanovic
1607f6ffbefSDamjan Jovanovic
1617f6ffbefSDamjan Jovanovicifeq ($(SYSTEM_ICU),YES)
1627f6ffbefSDamjan JovanovicGENCMN := $(SYSTEM_GENCMN)
1637f6ffbefSDamjan JovanovicGENBRK := $(SYSTEM_GENBRK)
1647f6ffbefSDamjan JovanovicGENCCODE := $(SYSTEM_GENCCODE)
1657f6ffbefSDamjan Jovanovicelse
1667f6ffbefSDamjan JovanovicGENCMN := $(gb_Augment_Library_Path) $(OUTDIR)/bin/gencmn$(gb_Executable_EXT)
1677f6ffbefSDamjan JovanovicGENBRK := $(gb_Augment_Library_Path) $(OUTDIR)/bin/genbrk$(gb_Executable_EXT)
1687f6ffbefSDamjan JovanovicGENCCODE := $(gb_Augment_Library_Path) $(OUTDIR)/bin/genccode$(gb_Executable_EXT)
1697f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.brk : $(OUTDIR)/bin/genbrk$(gb_Executable_EXT)
1707f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%_brk.c: $(OUTDIR)/bin/genccode$(gb_Executable_EXT)
1717f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/OpenOffice_dat.c : $(OUTDIR)/bin/gencmn$(gb_Executable_EXT)
1727f6ffbefSDamjan Jovanovicendif
1737f6ffbefSDamjan Jovanovic
1747f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.brk : $(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.txt
1757f6ffbefSDamjan Jovanovic	$(GENBRK) -r $(call gb_Helper_convert_native,$<) -o $(call gb_Helper_convert_native,$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/$*.brk)
1767f6ffbefSDamjan Jovanovic
1777f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%_brk.c : $(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/%.brk
1787f6ffbefSDamjan Jovanovic	$(GENCCODE) -n OpenOffice -d $(call gb_Helper_convert_native,$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data) $(call gb_Helper_convert_native,$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/$*.brk)
1797f6ffbefSDamjan Jovanovic
1807f6ffbefSDamjan Jovanovic# 'gencmn', 'genbrk' and 'genccode' are tools generated and delivered by icu project to process icu breakiterator rules.
1817f6ffbefSDamjan Jovanovic# The output of gencmn generates warnings under Windows. We want to minimize the patches to external tools,
1827f6ffbefSDamjan Jovanovic# so the output (OpenOffice_icu_dat.c) is changed here to include a pragma to disable the warnings.
1837f6ffbefSDamjan Jovanovic# Output of gencmn is redirected to OpenOffice_icu_tmp.c with the -t switch.
1847f6ffbefSDamjan Jovanovic$(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/OpenOffice_dat.c : $(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt)
1857f6ffbefSDamjan Jovanovic	RESPONSEFILE=$(call var2filecr,$(shell $(gb_MKTEMP)),1,$(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt),$(notdir $(basename $(txt))).brk)) \
1867f6ffbefSDamjan Jovanovic	&& cat $${RESPONSEFILE} \
1877f6ffbefSDamjan Jovanovic	&& $(GENCMN) -n OpenOffice -t tmp -S -d $(call gb_Helper_convert_native,$(dir $@)) O $(call gb_Helper_convert_native,$${RESPONSEFILE}) \
1887f6ffbefSDamjan Jovanovic	&& echo "#ifdef _MSC_VER" > $@ \
1897f6ffbefSDamjan Jovanovic	&& echo "#pragma warning( disable : 4229 4668 )" >> $@ \
1907f6ffbefSDamjan Jovanovic	&& echo "#endif" >> $@ \
1917f6ffbefSDamjan Jovanovic	&& cat $(WORKDIR)/CustomTarget/i18npool/source/breakiterator/data/OpenOffice_tmp.c >> $@ \
1927f6ffbefSDamjan Jovanovic	&& rm -f $${RESPONSEFILE}
1937f6ffbefSDamjan Jovanovic
1947f6ffbefSDamjan Jovanovic#$(eval $(call gb_Library_add_generated_cobjects,i18npool,\
1957f6ffbefSDamjan Jovanovic#	$(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt),CustomTarget/i18npool/source/breakiterator/data/$(notdir $(basename $(txt)))_brk) \
1967f6ffbefSDamjan Jovanovic#))
1977f6ffbefSDamjan Jovanovic
1987f6ffbefSDamjan Jovanovic$(foreach txt,$(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt),$(eval $(call gb_Library_add_generated_cobject,i18npool,CustomTarget/i18npool/source/breakiterator/data/$(notdir $(basename $(txt)))_brk)))
1997f6ffbefSDamjan Jovanovic
2007f6ffbefSDamjan Jovanovic$(eval $(call gb_Library_add_generated_cobject,i18npool,CustomTarget/i18npool/source/breakiterator/data/OpenOffice_dat))
2017f6ffbefSDamjan Jovanovic
2027f6ffbefSDamjan Jovanovic# vim: set noet sw=4 ts=4:
2037f6ffbefSDamjan Jovanovic
204