diff options
author | Tor Lillqvist <tml@collabora.com> | 2014-04-22 23:09:40 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2014-04-22 23:13:07 +0300 |
commit | 8774a2b1279fcb43eb3cf821cadd3b969078cbcd (patch) | |
tree | 7a0289eddeddea55a57ffb46dfb8eef97426ba62 | |
parent | f8fd4b70717ee2fc9a3b3f25ebf9e1b6a91a7a25 (diff) |
Let --with-locales prune also built-in collator data
Effective in the DISABLE_DYNLOADING case.
Introduce a new gbuild macro gb_Helper_optional_locale.
Change-Id: I43eb39fa810f71cadb6bc6d5c117ae145629ecb9
-rw-r--r-- | i18npool/CustomTarget_collator.mk | 61 | ||||
-rw-r--r-- | i18npool/source/collator/collator_unicode.cxx | 28 | ||||
-rw-r--r-- | solenv/gbuild/Helper.mk | 10 |
3 files changed, 77 insertions, 22 deletions
diff --git a/i18npool/CustomTarget_collator.mk b/i18npool/CustomTarget_collator.mk index 04527bb613d7..9fea159df2fc 100644 --- a/i18npool/CustomTarget_collator.mk +++ b/i18npool/CustomTarget_collator.mk @@ -11,26 +11,37 @@ $(eval $(call gb_CustomTarget_CustomTarget,i18npool/collator)) i18npool_CODIR := $(call gb_CustomTarget_get_workdir,i18npool/collator) i18npool_COTXTS := \ - ca_charset.txt \ - dz_charset.txt \ - hu_charset.txt \ - ja_charset.txt \ - ja_phonetic_alphanumeric_first.txt \ - ja_phonetic_alphanumeric_last.txt \ - ko_charset.txt \ - ku_alphanumeric.txt \ - ln_charset.txt \ - my_dictionary.txt \ - ne_charset.txt \ - sid_charset.txt \ - 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_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) \ + $(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), \ @@ -44,10 +55,20 @@ $(i18npool_CODIR)/collator_%.cxx : \ $(call gb_Helper_abbreviate_dirs, \ $(call gb_Helper_execute,gencoll_rule) $< $@ $*) +define i18npool_echo_one_lang + echo '#define LOCAL_RULE_$(1)' >>$@ + +endef + $(i18npool_CODIR)/lrl_include.hxx : \ $(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)))))"' > $@ +ifeq ($(WITH_LOCALES),) + echo '#define LOCAL_RULE_ALL' >>$@ +else + $(foreach txt,$(i18npool_COTXTS),$(call i18npool_echo_one_lang,$(subst .txt,,$(txt)))) +endif # vim: set noet sw=4 ts=4: diff --git a/i18npool/source/collator/collator_unicode.cxx b/i18npool/source/collator/collator_unicode.cxx index f6fcbe75d9ce..5f03e4b9dd3f 100644 --- a/i18npool/source/collator/collator_unicode.cxx +++ b/i18npool/source/collator/collator_unicode.cxx @@ -154,16 +154,25 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang:: } } #else - if ( rLocale.Language == "ca" ) { + if (false) { + ; +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_ca_charset + } else if ( rLocale.Language == "ca" ) { if ( rAlgorithm == "charset" ) func = get_collator_data_ca_charset; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_dz_charset } else if ( rLocale.Language == "dz" || rLocale.Language == "bo" ) { // 'bo' Tibetan uses the same collation rules as 'dz' Dzongkha if ( rAlgorithm == "charset" ) func = get_collator_data_dz_charset; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_hu } else if ( rLocale.Language == "hu" ) { if ( rAlgorithm == "charset" ) func = get_collator_data_hu_charset; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_ja_charset } else if ( rLocale.Language == "ja" ) { if ( rAlgorithm == "charset" ) func = get_collator_data_ja_charset; @@ -171,24 +180,38 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang:: func = get_collator_data_ja_phonetic_alphanumeric_first; else if ( rAlgorithm == "phonetic (alphanumeric last)" ) func = get_collator_data_ja_phonetic_alphanumeric_last; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_ko_charset } else if ( rLocale.Language == "ko" ) { if ( rAlgorithm == "charset" ) func = get_collator_data_ko_charset; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_ku_charset } else if ( rLocale.Language == "ku" ) { if ( rAlgorithm == "alphanumeric" ) func = get_collator_data_ku_alphanumeric; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_ln_charset } else if ( rLocale.Language == "ln" ) { if ( rAlgorithm == "charset" ) func = get_collator_data_ln_charset; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_my_charset } else if ( rLocale.Language == "my" ) { if ( rAlgorithm == "dictionary" ) func = get_collator_data_my_dictionary; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_ne_charset } else if ( rLocale.Language == "ne" ) { if ( rAlgorithm == "charset" ) func = get_collator_data_ne_charset; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_sid_charset } else if ( rLocale.Language == "sid" ) { if ( rAlgorithm == "charset" ) func = get_collator_data_sid_charset; +#endif +#if defined LOCAL_RULE_ALL || defined LOCAL_RULE_zh_charset } else if ( rLocale.Language == "zh" && (rLocale.Country == "TW" || rLocale.Country == "HK" || rLocale.Country == "MO") ) { if ( rAlgorithm == "charset" ) func = get_collator_data_zh_TW_charset; @@ -207,8 +230,9 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang:: func = get_collator_data_zh_stroke; else if ( rAlgorithm == "zhuyin" ) func = get_collator_data_zh_zhuyin; - } #endif + } +#endif // DISABLE_DYNLOADING if (func) { const sal_uInt8* ruleImage=func(); uca_base = new RuleBasedCollator(static_cast<UChar*>(NULL), status); diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk index 4b9c249ac451..8efba9834ba1 100644 --- a/solenv/gbuild/Helper.mk +++ b/solenv/gbuild/Helper.mk @@ -242,6 +242,16 @@ define gb_Helper_optional $(if $(filter $(1),$(BUILD_TYPE)),$(2)) endef +ifeq ($(WITH_LOCALES),) +define gb_Helper_optional_locale +$(2) +endef +else +define gb_Helper_optional_locale +$(if $(filter $(1) $(1)_%,$(WITH_LOCALES)),$(2)) +endef +endif + define gb_Helper_optional_for_host $(if $(filter $(1),$(BUILD_TYPE_FOR_HOST)),$(2)) endef |