| Index: icu_data.gyp
|
| diff --git a/icu_data.gyp b/icu_data.gyp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..49e19ebf34987449e9a3d926cd5024ed479b818c
|
| --- /dev/null
|
| +++ b/icu_data.gyp
|
| @@ -0,0 +1,1907 @@
|
| +# Copyright (c) 2015 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# TODO:
|
| +# Reuse the libs compiled for chromium when compiling the tools? May make it harder to build release in debug. And cross compiling?
|
| +
|
| +# Check that it's easy to do Opera's language additions with a minimum of patching.
|
| +
|
| +# Delete files not needed anymore:
|
| +# * android/patch_locale.sh (X lines)
|
| +# * linux/ ... / (Y MB)
|
| +
|
| +
|
| +# To update for a newer ICU:
|
| +# Diff the old and new Makefile.in and take appropriate action. Moving from 5.2 to 5.4 took 1-2 hours (first time).
|
| +
|
| +{
|
| + 'variables': {
|
| + 'ICU_VER': '54',
|
| +
|
| + 'gencnval_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gencnval<(EXECUTABLE_SUFFIX)',
|
| + 'gendict_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gendict<(EXECUTABLE_SUFFIX)',
|
| + 'genbrk_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)genbrk<(EXECUTABLE_SUFFIX)',
|
| + 'genrb_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)genrb<(EXECUTABLE_SUFFIX)',
|
| + 'gencfu_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gencfu<(EXECUTABLE_SUFFIX)',
|
| + 'icupkg_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)icupkg<(EXECUTABLE_SUFFIX)',
|
| + 'makeconv_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)makeconv<(EXECUTABLE_SUFFIX)',
|
| + 'pkgdata_exe': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)pkgdata<(EXECUTABLE_SUFFIX)',
|
| +
|
| + 'icu_gen_dir': '<(SHARED_INTERMEDIATE_DIR)/icudt<(ICU_VER)l',
|
| + 'icu_gen_tmp_dir': '<(SHARED_INTERMEDIATE_DIR)/tmp_icudt<(ICU_VER)l',
|
| +
|
| + 'icu_use_data_file_flag%': 0,
|
| +
|
| + 'icu_data_generated_contents': [
|
| + # Coll
|
| + '<@(icu_data_coll_res_root_generated)',
|
| + '<@(icu_data_coll_res_generated)',
|
| + '<@(icu_data_coll_res_alias_generated)',
|
| + '<(icu_gen_dir)/coll/res_index.res',
|
| + # Brk_brk
|
| + '<@(icu_data_brkitr_brk_generated)',
|
| + # Brk_res
|
| + '<@(icu_data_brkitr_res_root_generated)',
|
| + '<@(icu_data_brkitr_res_generated)',
|
| + '<(icu_gen_dir)/brkitr/res_index.res',
|
| + # Brk_dict
|
| + '<(icu_gen_dir)/brkitr/burmesedict.dict',
|
| + '<(icu_gen_dir)/brkitr/cjdict.dict',
|
| + '<(icu_gen_dir)/brkitr/khmerdict.dict',
|
| + '<(icu_gen_dir)/brkitr/laodict.dict',
|
| + '<(icu_gen_dir)/brkitr/thaidict.dict',
|
| + # Locales
|
| + '<@(icu_data_locales_res_root_generated)',
|
| + '<@(icu_data_locales_res_generated)',
|
| + # Misc + end of Locales
|
| + '<@(icu_data_locales_res_alias_generated)',
|
| + '<@(icu_data_misc_res_generated)',
|
| + '<(icu_gen_dir)/res_index.res',
|
| + '<(icu_gen_dir)/pool.res',
|
| + # Lang
|
| + '<@(icu_data_lang_res_root_generated)',
|
| + '<@(icu_data_lang_res_generated)',
|
| + '<@(icu_data_lang_res_alias_generated)',
|
| + '<(icu_gen_dir)/lang/res_index.res',
|
| + '<(icu_gen_dir)/lang/pool.res',
|
| + # Region
|
| + '<@(icu_data_region_res_root_generated)',
|
| + '<@(icu_data_region_res_generated)',
|
| + '<@(icu_data_region_res_alias_generated)',
|
| + '<(icu_gen_dir)/region/res_index.res',
|
| + '<(icu_gen_dir)/region/pool.res',
|
| + # Zone
|
| + '<@(icu_data_zone_res_root_generated)',
|
| + '<@(icu_data_zone_res_generated)',
|
| + '<@(icu_data_zone_res_alias_generated)',
|
| + '<@(icu_data_zone_res_extra_generated)',
|
| + '<(icu_gen_dir)/zone/res_index.res',
|
| + '<(icu_gen_dir)/zone/pool.res',
|
| + # Unit
|
| + '<@(icu_data_unit_res_root_generated)',
|
| + '<@(icu_data_unit_res_generated)',
|
| + '<@(icu_data_unit_res_alias_generated)',
|
| + '<(icu_gen_dir)/unit/res_index.res',
|
| + '<(icu_gen_dir)/unit/pool.res',
|
| + # Random data
|
| + '<(icu_gen_dir)/cnvalias.icu',
|
| + '<(icu_gen_dir)/coll/ucadata.icu',
|
| + '<(icu_gen_dir)/nfkc.nrm',
|
| + '<(icu_gen_dir)/nfkc_cf.nrm',
|
| + '<(icu_gen_dir)/uts46.nrm',
|
| +
|
| + # converters
|
| + '<@(icu_data_ucm_generated)',
|
| +
|
| + # Currency
|
| + '<@(icu_data_curr_res_root_generated)',
|
| + '<@(icu_data_curr_res_supplemental_generated)',
|
| + '<@(icu_data_curr_res_generated)',
|
| + '<@(icu_data_curr_res_alias_generated)',
|
| + '<(icu_gen_dir)/curr/res_index.res',
|
| + '<(icu_gen_dir)/curr/pool.res',
|
| +
|
| + # RBNF
|
| + '<(icu_gen_dir)/rbnf/res_index.res',
|
| +
|
| + # Translit (note css3transform.txt -> root.txt)
|
| + '<(icu_gen_dir)/translit/root.res',
|
| +
|
| + # Confusables
|
| + '<(icu_gen_dir)/confusables.cfu',
|
| + ],
|
| + 'languages_to_minimize': 'bn,et,gu,kn,ml,mr,ms,ta,te', # Move to gypi?
|
| + 'conditions': [
|
| + ['OS=="android"', {
|
| + # Remove things we don't want to include for this configuration.
|
| + 'icu_data_generated_contents!': [
|
| + # Region data is fetched from the Android API on Android.
|
| + '<@(icu_data_region_res_root_generated)',
|
| + '<@(icu_data_region_res_generated)',
|
| + '<@(icu_data_region_res_alias_generated)',
|
| +
|
| + # Languages from 'languages_to_minimize' above.
|
| + '<(icu_gen_dir)/curr/bn.res',
|
| + '<(icu_gen_dir)/curr/et.res',
|
| + '<(icu_gen_dir)/curr/gu.res',
|
| + '<(icu_gen_dir)/curr/kn.res',
|
| + '<(icu_gen_dir)/curr/ml.res',
|
| + '<(icu_gen_dir)/curr/mr.res',
|
| + '<(icu_gen_dir)/curr/ms.res',
|
| + '<(icu_gen_dir)/curr/ta.res',
|
| + '<(icu_gen_dir)/curr/te.res',
|
| +
|
| + # Too big to include.
|
| + '<(icu_gen_dir)/brkitr/cjdict.dict',
|
| + ],
|
| + 'icu_data_curr_res_raw_sources!': [
|
| + # Languages from 'languages_to_minimize' above.
|
| + 'source/data/curr/bn.res',
|
| + 'source/data/curr/et.res',
|
| + 'source/data/curr/gu.res',
|
| + 'source/data/curr/kn.res',
|
| + 'source/data/curr/ml.res',
|
| + 'source/data/curr/mr.res',
|
| + 'source/data/curr/ms.res',
|
| + 'source/data/curr/ta.res',
|
| + 'source/data/curr/te.res',
|
| + ],
|
| + 'icu_data_region_res_sources!': ["<@(icu_data_region_res_alias_sources)"],
|
| + 'icu_data_region_res_alias_sources!': ["<@(icu_data_region_res_alias_sources)"],
|
| + }, {
|
| + # Else (not Android) - skip the Android workaround files.
|
| + # Add some workarounds for not having cjdict.dict.
|
| + 'icu_data_generated_contents!': [
|
| + '<(icu_gen_dir)/brkitr/word_ja.brk',
|
| + '<(icu_gen_dir)/brkitr/ja.res',
|
| + ],
|
| + 'icu_data_brkitr_brk_sources!': [
|
| + 'source/data/brkitr/word_ja.txt',
|
| + ],
|
| + 'icu_data_brkitr_brk_generated!': [
|
| + '<(icu_gen_dir)/brkitr/word_ja.brk',
|
| + ],
|
| + 'icu_data_brkitr_res_filtered_sources!': [
|
| + '<(icu_gen_tmp_dir)/brkitr/ja.txt',
|
| + ],
|
| + 'icu_data_brkitr_res_generated!': [
|
| + '<(icu_gen_dir)/brkitr/ja.res',
|
| + ],
|
| + }]
|
| + ],
|
| + },
|
| + 'includes': [
|
| + 'icu_data.gypi',
|
| + ],
|
| + 'targets': [
|
| + {
|
| + 'target_name': 'icu_cnv_base_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:gencnval#host',
|
| + 'icu_tools.gyp:icupkg#host',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_nrm_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'icupkg_nrm',
|
| + 'extension': 'nrm',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + ],
|
| + 'outputs': [
|
| + # Can't use RULE_INPUT_NAME because of a bug in gyp's
|
| + # Makefile generator (see bug 472589).
|
| + '<(icu_gen_dir)/<(RULE_INPUT_ROOT).nrm',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + '<(RULE_INPUT_PATH)',
|
| + '<(icu_gen_dir)/<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + 'actions': [
|
| + {
|
| + 'action_name': 'icu_cnvalias',
|
| + 'inputs': [
|
| + '<(gencnval_exe)',
|
| + 'source/data/mappings/convrtrs.txt',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/cnvalias.icu',
|
| + ],
|
| + 'action': [
|
| + '<(gencnval_exe)',
|
| + '-d',
|
| + '<(icu_gen_dir)',
|
| + 'source/data/mappings/convrtrs.txt',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + {
|
| + 'action_name': 'icu_ucadata_icu',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + 'source/data/in/coll/ucadata-implicithan.icu',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/coll/ucadata.icu',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + 'source/data/in/coll/ucadata-implicithan.icu',
|
| + '<(icu_gen_dir)/coll/ucadata.icu',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_cnv_ucm_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:makeconv#host',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_ucm_sources)'
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'makeconv',
|
| + 'extension': 'ucm',
|
| + 'inputs': [
|
| + '<(makeconv_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/<(RULE_INPUT_ROOT).cnv',
|
| + ],
|
| + 'action': [
|
| + '<(makeconv_exe)',
|
| + '-c',
|
| + '-d',
|
| + '<(icu_gen_dir)',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # TODO: Merge all dicts into one action (since it can't be rule based)
|
| + {
|
| + 'target_name': 'icu_dict_cjdict',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:gendict#host',
|
| + ],
|
| + 'sources': [
|
| + 'source/data/brkitr/cjdict.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'gendict',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(gendict_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'action': [
|
| + '<(gendict_exe)',
|
| + '--uchars',
|
| + '-c',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '<(RULE_INPUT_PATH)',
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_dict_burmesedict',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:gendict#host',
|
| + ],
|
| + 'sources': [
|
| + 'source/data/brkitr/burmesedict.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'gendict',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(gendict_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'action': [
|
| + '<(gendict_exe)',
|
| + '--bytes',
|
| + '--transform',
|
| + 'offset-0x1000', # Extract from rule/action somehow
|
| + '-c',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '<(RULE_INPUT_PATH)',
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_dict_khmerdict',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:gendict#host',
|
| + ],
|
| + 'sources': [
|
| + 'source/data/brkitr/khmerdict.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'gendict',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(gendict_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'action': [
|
| + '<(gendict_exe)',
|
| + '--bytes',
|
| + '--transform',
|
| + 'offset-0x1780', # Extract from rule/action somehow
|
| + '-c',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '<(RULE_INPUT_PATH)',
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_dict_thaidict',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:gendict#host',
|
| + ],
|
| + 'sources': [
|
| + 'source/data/brkitr/thaidict.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'gendict',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(gendict_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'action': [
|
| + '<(gendict_exe)',
|
| + '--bytes',
|
| + '--transform',
|
| + 'offset-0xe00', # TODO: Extract from rule/action somehow
|
| + '-c',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '<(RULE_INPUT_PATH)',
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_dict_laodict',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:gendict#host',
|
| + ],
|
| + 'sources': [
|
| + 'source/data/brkitr/laodict.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'gendict',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(gendict_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'action': [
|
| + '<(gendict_exe)',
|
| + '--bytes',
|
| + '--transform',
|
| + 'offset-0x0e80', # TODO: Extract from rule/action somehow
|
| + '-c',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '<(RULE_INPUT_PATH)',
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).dict',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_filtered_for_size_files',
|
| + 'type': 'none',
|
| + 'actions': [
|
| + {
|
| + 'action_name': 'icu_filter_for_size',
|
| + 'inputs': [
|
| + 'build_tools/filter_data_for_size.py',
|
| + 'source/data/brkitr/word.txt',
|
| + 'source/data/brkitr/root.txt',
|
| + 'source/data/brkitr/ja.txt',
|
| + 'source/data/locales/pool.res',
|
| + 'source/data/curr/pool.res',
|
| + 'source/data/lang/pool.res',
|
| + '<@(icu_data_brkitr_res_root_raw_sources)',
|
| + '<@(icu_data_curr_res_raw_sources)',
|
| + '<@(icu_data_curr_res_alias_raw_sources)',
|
| + '<@(icu_data_curr_res_supplemental_raw_sources)',
|
| + '<@(icu_data_locales_res_raw_sources)',
|
| + '<@(icu_data_locales_res_alias_raw_sources)',
|
| + '<@(icu_data_lang_res_raw_sources)',
|
| + '<@(icu_data_lang_res_alias_raw_sources)',
|
| + '<@(icu_data_zone_res_raw_sources)',
|
| + '<@(icu_data_zone_res_alias_raw_sources)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/brkitr/word.txt',
|
| + '<(icu_gen_tmp_dir)/brkitr/root.txt',
|
| + '<(icu_gen_tmp_dir)/brkitr/ja.txt',
|
| + '<(icu_gen_tmp_dir)/locales/pool.res',
|
| + '<(icu_gen_tmp_dir)/curr/pool.res',
|
| + '<(icu_gen_tmp_dir)/lang/pool.res',
|
| + '<@(icu_data_brkitr_res_root_filtered_sources)',
|
| + '<@(icu_data_curr_res_filtered_sources)',
|
| + '<@(icu_data_curr_res_alias_filtered_sources)',
|
| + '<@(icu_data_curr_res_supplemental_filtered_sources)',
|
| + '<@(icu_data_locales_res_filtered_sources)',
|
| + '<@(icu_data_locales_res_alias_filtered_sources)',
|
| + '<@(icu_data_lang_res_filtered_sources)',
|
| + '<@(icu_data_lang_res_alias_filtered_sources)',
|
| + '<@(icu_data_zone_res_filtered_sources)',
|
| + '<@(icu_data_zone_res_alias_filtered_sources)',
|
| + '<(icu_gen_tmp_dir)/locales/root.txt',
|
| + '<(icu_gen_tmp_dir)/curr/root.txt',
|
| + '<(icu_gen_tmp_dir)/lang/root.txt',
|
| + '<(icu_gen_tmp_dir)/zone/root.txt',
|
| + ],
|
| + 'conditions': [
|
| + ['OS=="android"', {
|
| + 'variables': {
|
| + 'filter_mode': 'strip-for-size',
|
| + },
|
| + }, {
|
| + 'variables': {
|
| + 'filter_mode': 'clean-copy',
|
| + },
|
| + }
|
| + ]
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/filter_data_for_size.py',
|
| + '--mode',
|
| + '<(filter_mode)',
|
| + '--in-word-txt',
|
| + 'source/data/brkitr/word.txt',
|
| + '--out-word-txt',
|
| + '<(icu_gen_tmp_dir)/brkitr/word.txt',
|
| + '--in-brkitr-root-txt',
|
| + 'source/data/brkitr/root.txt',
|
| + '--out-brkitr-root-txt',
|
| + '<(icu_gen_tmp_dir)/brkitr/root.txt',
|
| + '--in-brkitr-ja-txt',
|
| + 'source/data/brkitr/ja.txt',
|
| + '--out-brkitr-ja-txt',
|
| + '<(icu_gen_tmp_dir)/brkitr/ja.txt',
|
| + '--currency-keep-list',
|
| + 'android/currencies.list',
|
| + '--in-curr-dir',
|
| + 'source/data/curr',
|
| + '--out-curr-dir',
|
| + '<(icu_gen_tmp_dir)/curr',
|
| + '--minimize-language-list',
|
| + '<(languages_to_minimize)',
|
| + '--in-locales-dir',
|
| + 'source/data/locales',
|
| + '--out-locales-dir',
|
| + '<(icu_gen_tmp_dir)/locales',
|
| + '--in-lang-dir',
|
| + 'source/data/lang',
|
| + '--out-lang-dir',
|
| + '<(icu_gen_tmp_dir)/lang',
|
| + '--in-zone-dir',
|
| + 'source/data/zone',
|
| + '--out-zone-dir',
|
| + '<(icu_gen_tmp_dir)/zone',
|
| + '--remove-data-already-existing-in-android',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + }
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_brk_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genbrk#host',
|
| + 'icu_cnv_base_files',
|
| + 'icu_filtered_for_size_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_brkitr_brk_sources)'
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genbrk',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genbrk_exe)',
|
| + '<(icu_gen_dir)/cnvalias.icu',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).brk',
|
| + ],
|
| + 'action': [
|
| + '<(genbrk_exe)',
|
| + '-c',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-r',
|
| + '<(RULE_INPUT_PATH)',
|
| + '-o',
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).brk',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_locales_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + 'icu_filtered_for_size_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_locales_res_root_sources)',
|
| + '<@(icu_data_locales_res_filtered_sources)',
|
| + '<@(icu_data_locales_res_alias_filtered_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + '<(icu_gen_tmp_dir)/locales/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '--quiet', # Chromium addition to silence warnings.
|
| + '--usePoolBundle',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + '<(icu_gen_tmp_dir)/locales',
|
| + '-d<(icu_gen_dir)', # Writing as two arguments and the gen dir argument just disappears. Magically. Because lists can't have duplicates unless they start with '-'.
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_misc_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_misc_res_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-q',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + 'source/data/misc',
|
| + '-d<(icu_gen_dir)', # Writing as two arguments and the gen dir argument just disappears. Magically. Because lists can't have duplicates unless they start with '-'.
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'type': 'none',
|
| + 'actions': [
|
| + {
|
| + 'action_name': 'icu_write_locales_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Note: Only using file names, not files.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--cldr-version',
|
| + '1.9', # FIXME: Move somewhere
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/res_index.txt',
|
| + '<@(icu_data_locales_res_raw_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_curr_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Note: Only using file names, not files.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/curr/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/curr/res_index.txt',
|
| + '<@(icu_data_curr_res_raw_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_lang_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Only using the name of files, not their contents.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/lang/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/lang/res_index.txt',
|
| + '<@(icu_data_lang_res_raw_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_region_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Only using the file names, not the file contents.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/region/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/region/res_index.txt',
|
| + '<@(icu_data_region_res_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_zone_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Only using the file names, not the file contents.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/zone/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/zone/res_index.txt',
|
| + '<@(icu_data_zone_res_raw_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_unit_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Only using the file names, not the file contents.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/unit/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/unit/res_index.txt',
|
| + '<@(icu_data_unit_res_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_coll_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Only using the file names, not the file contents.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/coll/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/coll/res_index.txt',
|
| + '<@(icu_data_coll_res_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_brkitr_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Only using the file names, not the file contents.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/brkitr/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/brkitr/res_index.txt',
|
| + '<@(icu_data_brkitr_res_sources)',
|
| + '<@(icu_data_brkitr_res_filtered_sources)',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_write_rbnf_res_index_txt',
|
| + 'inputs': [
|
| + 'build_tools/write_res_index.py',
|
| + # Only using the file names, not the file contents.
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/rbnf/res_index.txt',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_res_index.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/rbnf/res_index.txt',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_pool_res_locales_curr_lang_region_zone_unit',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:icupkg#host',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_locales_res_filtered_sources)',
|
| + ],
|
| + 'actions': [
|
| + {
|
| + 'action_name': 'icu_locales_pool_res',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + 'source/data/locales/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/pool.res',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + 'source/data/locales/pool.res',
|
| + '<(icu_gen_dir)/pool.res',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_curr_pool_res',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + 'source/data/curr/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/curr/pool.res',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + 'source/data/curr/pool.res',
|
| + '<(icu_gen_dir)/curr/pool.res',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_lang_pool_res',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + 'source/data/lang/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/lang/pool.res',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + 'source/data/lang/pool.res',
|
| + '<(icu_gen_dir)/lang/pool.res',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_region_pool_res',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + 'source/data/region/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/region/pool.res',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + 'source/data/region/pool.res',
|
| + '<(icu_gen_dir)/region/pool.res',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_zone_pool_res',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + 'source/data/zone/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/zone/pool.res',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + 'source/data/zone/pool.res',
|
| + '<(icu_gen_dir)/zone/pool.res',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + {
|
| + 'action_name': 'icu_unit_pool_res',
|
| + 'inputs': [
|
| + '<(icupkg_exe)',
|
| + 'source/data/unit/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/unit/pool.res',
|
| + ],
|
| + 'action': [
|
| + '<(icupkg_exe)',
|
| + '-tl',
|
| + 'source/data/unit/pool.res',
|
| + '<(icu_gen_dir)/unit/pool.res',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_locales_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d<(icu_gen_dir)', # Writing as two arguments and the gen dir argument just disappears. Magically. Because lists can't have duplicates unless they start with '-'.
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # START CURRENCY
|
| + {
|
| + 'target_name': 'icu_curr_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + 'icu_filtered_for_size_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_curr_res_root_sources)',
|
| + '<@(icu_data_curr_res_supplemental_filtered_sources)',
|
| + '<@(icu_data_curr_res_filtered_sources)',
|
| + '<@(icu_data_curr_res_alias_filtered_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + '<(icu_gen_tmp_dir)/curr/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/curr/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '--quiet', # Chromium addition to silence warnings.
|
| + '--usePoolBundle',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + '<(icu_gen_tmp_dir)/curr',
|
| + '-d',
|
| + '<(icu_gen_dir)/curr',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_curr_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/curr/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/curr/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/curr',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END CURRENCY
|
| + # START LANGUAGE
|
| + {
|
| + 'target_name': 'icu_lang_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + 'icu_filtered_for_size_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_lang_res_root_sources)',
|
| + '<@(icu_data_lang_res_filtered_sources)',
|
| + '<@(icu_data_lang_res_alias_filtered_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + '<(icu_gen_tmp_dir)/lang/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/lang/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '--usePoolBundle',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + '<(icu_gen_tmp_dir)/lang',
|
| + '-d',
|
| + '<(icu_gen_dir)/lang',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_lang_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/lang/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/lang/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/lang',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END LANGUAGE
|
| + # START REGION
|
| + {
|
| + 'target_name': 'icu_region_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_region_res_root_sources)',
|
| + '<@(icu_data_region_res_sources)',
|
| + '<@(icu_data_region_res_alias_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + 'source/data/region/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/region/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '--usePoolBundle',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + 'source/data/region',
|
| + '-d',
|
| + '<(icu_gen_dir)/region',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_region_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/region/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/region/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/region',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END REGION
|
| + # START ZONE
|
| + {
|
| + 'target_name': 'icu_zone_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + 'icu_filtered_for_size_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_zone_res_root_sources)',
|
| + '<@(icu_data_zone_res_filtered_sources)',
|
| + '<@(icu_data_zone_res_alias_filtered_sources)',
|
| + '<@(icu_data_zone_res_extra_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + 'source/data/zone/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/zone/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '--usePoolBundle',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + '<(icu_gen_tmp_dir)/zone',
|
| + '-d',
|
| + '<(icu_gen_dir)/zone',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_zone_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/zone/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/zone/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/zone',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END ZONE
|
| + # START UNIT
|
| + {
|
| + 'target_name': 'icu_unit_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_unit_res_root_sources)',
|
| + '<@(icu_data_unit_res_sources)',
|
| + '<@(icu_data_unit_res_alias_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + 'source/data/unit/pool.res',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/unit/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '--quiet', # Chromium addition to silence warnings.
|
| + '--usePoolBundle',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + 'source/data/unit',
|
| + '-d',
|
| + '<(icu_gen_dir)/unit',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_unit_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/unit/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/unit/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/unit',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END UNIT
|
| + # START COLL
|
| + {
|
| + 'target_name': 'icu_coll_res_files',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_cnv_base_files',
|
| + 'icu_misc_res_files', # Specifically keyTypeData for sr_Latn.txt
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_coll_res_root_sources)',
|
| + '<@(icu_data_coll_res_sources)',
|
| + '<@(icu_data_coll_res_alias_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/coll/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + 'source/data/coll',
|
| + '-d',
|
| + '<(icu_gen_dir)/coll',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_coll_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/coll/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/coll/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/coll',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END COLL
|
| + # START BRKITR
|
| + {
|
| + 'target_name': 'icu_brkitr_res_files',
|
| + # icu_brkitr_res_filtered_files is the same except that -s (source
|
| + # dir) is icu_gen_tmp_dir in that action.
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_dict_cjdict',
|
| + 'icu_dict_laodict',
|
| + 'icu_dict_thaidict',
|
| + 'icu_dict_khmerdict',
|
| + 'icu_brk_files',
|
| + 'icu_cnv_base_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_brkitr_res_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + 'source/data/brkitr',
|
| + '-d',
|
| + '<(icu_gen_dir)/brkitr',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_brkitr_res_filtered_files',
|
| + # Same as icu_brkitr_res_files except that -s (source dir) is
|
| + # icu_gen_tmp_dir.
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + 'icu_dict_cjdict',
|
| + 'icu_dict_laodict',
|
| + 'icu_dict_thaidict',
|
| + 'icu_dict_khmerdict',
|
| + 'icu_brk_files',
|
| + 'icu_cnv_base_files',
|
| + 'icu_filtered_for_size_files',
|
| + ],
|
| + 'sources': [
|
| + '<@(icu_data_brkitr_res_root_filtered_sources)',
|
| + '<@(icu_data_brkitr_res_filtered_sources)',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + '<(icu_gen_tmp_dir)/brkitr',
|
| + '-d',
|
| + '<(icu_gen_dir)/brkitr',
|
| + '<(RULE_INPUT_NAME)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'icu_brkitr_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/brkitr/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/brkitr/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/brkitr',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END BRKITR
|
| + # START RBNF
|
| + {
|
| + 'target_name': 'icu_rbnf_res_index_res_file',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_res_index_txt_files_locales_curr_lang_region_zone_unit_coll_brkitr_rbnf_translit',
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'sources': [
|
| + '<(icu_gen_tmp_dir)/rbnf/res_index.txt',
|
| + ],
|
| + 'rules': [
|
| + {
|
| + 'rule_name': 'genrb',
|
| + 'extension': 'txt',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/rbnf/<(RULE_INPUT_ROOT).res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '--quiet', # Chromium addition to silence warnings.
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-d',
|
| + '<(icu_gen_dir)/rbnf',
|
| + '<(RULE_INPUT_PATH)',
|
| + ],
|
| + 'process_outputs_as_sources': 1,
|
| + },
|
| + ],
|
| + },
|
| + # END RBNF
|
| + # START TRANSLIT
|
| + {
|
| + 'target_name': 'icu_data_translit',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:genrb#host',
|
| + ],
|
| + 'actions': [
|
| + {
|
| + 'action_name': 'genrb',
|
| + 'inputs': [
|
| + '<(genrb_exe)',
|
| + 'source/data/translit/css3transform.txt',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/translit/root.res',
|
| + ],
|
| + 'action': [
|
| + '<(genrb_exe)',
|
| + '-k',
|
| + '-R',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-s',
|
| + 'source/data/translit',
|
| + '-d',
|
| + '<(icu_gen_dir)/translit',
|
| + 'css3transform.txt',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + ],
|
| + },
|
| + # END TRANSLIT
|
| + # START CONFUSABLES
|
| + {
|
| + 'target_name': 'icu_data_confusables',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:gencfu#host',
|
| + ],
|
| + 'actions': [
|
| + {
|
| + 'action_name': 'gencfu',
|
| + 'inputs': [
|
| + '<(gencfu_exe)',
|
| + '<(icu_gen_dir)/cnvalias.icu',
|
| + 'source/data/unidata/confusables.txt',
|
| + 'source/data/unidata/confusablesWholeScript.txt',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_dir)/confusables.cfu',
|
| + ],
|
| + 'action': [
|
| + '<(gencfu_exe)',
|
| + '-c',
|
| + '-i',
|
| + '<(icu_gen_dir)',
|
| + '-r',
|
| + 'source/data/unidata/confusables.txt',
|
| + '-w',
|
| + 'source/data/unidata/confusablesWholeScript.txt',
|
| + '-o',
|
| + '<(icu_gen_dir)/confusables.cfu',
|
| + ],
|
| + 'process_outputs_as_sources': 1, # Right place?
|
| + },
|
| + ],
|
| + },
|
| + # END CONFUSABLES
|
| + # START icudata.lst/icudtl.dat
|
| + {
|
| + 'target_name': 'icu_data_package',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_tools.gyp:pkgdata#host',
|
| + 'icu_cnv_base_files',
|
| + 'icu_data_confusables',
|
| + 'icu_data_translit',
|
| + 'icu_cnv_ucm_files',
|
| + 'icu_dict_cjdict',
|
| + 'icu_dict_khmerdict',
|
| + 'icu_dict_burmesedict',
|
| + 'icu_dict_laodict',
|
| + 'icu_dict_thaidict',
|
| + 'icu_brk_files',
|
| + 'icu_locales_res_files',
|
| + 'icu_misc_res_files',
|
| + 'icu_pool_res_locales_curr_lang_region_zone_unit',
|
| + 'icu_locales_res_index_res_file',
|
| + 'icu_curr_res_files',
|
| + 'icu_curr_res_index_res_file',
|
| + 'icu_lang_res_files',
|
| + 'icu_lang_res_index_res_file',
|
| + 'icu_region_res_files',
|
| + 'icu_region_res_index_res_file',
|
| + 'icu_zone_res_files',
|
| + 'icu_zone_res_index_res_file',
|
| + 'icu_unit_res_files',
|
| + 'icu_unit_res_index_res_file',
|
| + 'icu_coll_res_files',
|
| + 'icu_coll_res_index_res_file',
|
| + 'icu_brkitr_res_files',
|
| + 'icu_brkitr_res_filtered_files',
|
| + 'icu_brkitr_res_index_res_file',
|
| + 'icu_rbnf_res_index_res_file',
|
| + ],
|
| + 'variables': {
|
| + 'icu_resource_files_file': '<|(icu_data_resource_list.tmp <@(icu_data_generated_contents))'
|
| + },
|
| + 'actions': [
|
| + {
|
| + 'action_name': 'write_icudata_lst',
|
| + 'inputs': [
|
| + 'build_tools/write_icudata_lst.py',
|
| + '<(icu_resource_files_file)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/icudata.lst',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_icudata_lst.py',
|
| + '--inroot',
|
| + '<(icu_gen_dir)',
|
| + '--PRODUCT_DIR',
|
| + '<(PRODUCT_DIR)',
|
| + '--infile',
|
| + '<(icu_resource_files_file)',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/icudata.lst',
|
| + ],
|
| + },
|
| + {
|
| + 'action_name': 'write_icupkg_inc',
|
| + 'inputs': [
|
| + 'build_tools/write_icupkg_inc.py',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/icupkg.inc',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/write_icupkg_inc.py',
|
| + '--outfile',
|
| + '<(icu_gen_tmp_dir)/icupkg.inc',
|
| + "--ver",
|
| + "<(ICU_VER)",
|
| + "--icu-dir",
|
| + ".", # Check: Is this a usable path once the data is used?
|
| + ],
|
| + },
|
| + {
|
| + 'action_name': 'pkgdata',
|
| + 'conditions': [
|
| + ['icu_use_data_file_flag==1',
|
| + # This is the common/recommended way:
|
| + # External .dat file.
|
| + {
|
| + 'inputs': [
|
| + 'build_tools/run_without_cygwin.py',
|
| + '<(pkgdata_exe)',
|
| + '<(icu_gen_tmp_dir)/icudata.lst',
|
| + '<@(icu_data_generated_contents)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/icudt<(ICU_VER)l.dat',
|
| + ],
|
| + 'variables': {
|
| + 'pkgdata_args': [
|
| + '-m', # Mode
|
| + 'common',
|
| + ]
|
| + },
|
| + } ],
|
| + ['icu_use_data_file_flag==0 and OS=="win"',
|
| + {
|
| + 'inputs': [
|
| + 'build_tools/run_without_cygwin.py',
|
| + '<(pkgdata_exe)',
|
| + '<(icu_gen_tmp_dir)/icudata.lst',
|
| + '<@(icu_data_generated_contents)',
|
| + ],
|
| + 'outputs': [
|
| + # Windows pkgdata puts the dll in the
|
| + # Source directory.
|
| + '<(icu_gen_dir)/icudt<(ICU_VER).dll',
|
| + ],
|
| + 'variables': {
|
| + 'pkgdata_args': [
|
| + '-e', # Entry point
|
| + 'icudt<(ICU_VER)',
|
| + '-m', # Mode
|
| + 'dll',
|
| + '-L', # Lib name
|
| + 'icudata',
|
| + ]
|
| + },
|
| + # Do we also need:
|
| + # editbin /NXCOMPAT /DYNAMICBASE "$(U_ICUDATA_NAME).dll"
|
| + # ? They add randomness to the dll load and makes
|
| + # the data non-executable (I think?).
|
| + } ],
|
| + ['icu_use_data_file_flag==0 and OS!="win"',
|
| + {
|
| + 'inputs': [
|
| + 'build_tools/run_without_cygwin.py',
|
| + '<(pkgdata_exe)',
|
| + '<(icu_gen_tmp_dir)/icudata.lst',
|
| + '<(icu_gen_tmp_dir)/icupkg.inc',
|
| + '<@(icu_data_generated_contents)',
|
| + ],
|
| + 'outputs': [
|
| + '<(icu_gen_tmp_dir)/icudt<(ICU_VER)l.S',
|
| + ],
|
| + 'variables': {
|
| + 'pkgdata_args': [
|
| + '-O',
|
| + '<(icu_gen_tmp_dir)/icupkg.inc',
|
| + '-e', # Entry point
|
| + 'icudt<(ICU_VER)',
|
| + '-m', # Mode
|
| + 'dll',
|
| + '-L', # Lib name
|
| + 'icudata',
|
| + ]
|
| + },
|
| + }]
|
| + ],
|
| + # v8 standalone inserts a cygwin environment in the path and
|
| + # on Windows pkgdata expects to find the VS linker (link.exe)
|
| + # in the path. So we strip cygwin from the path before
|
| + # invoking pkgdata.
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/run_without_cygwin.py',
|
| + '<(pkgdata_exe)',
|
| + '-q', # Quiet
|
| + '-c', # Use default copyright.
|
| + '-s<(icu_gen_dir)', # Source
|
| + '-d<(icu_gen_tmp_dir)', # Destination
|
| + '-T<(icu_gen_tmp_dir)', # Temp dir
|
| + '-r', # Revision
|
| + '<(ICU_VER).1',
|
| + '-p', # Data name
|
| + 'icudt<(ICU_VER)l',
|
| + '<@(pkgdata_args)',
|
| + '<(icu_gen_tmp_dir)/icudata.lst',
|
| + ],
|
| + },
|
| + ],
|
| + },
|
| + # END pkgdata
|
| + {
|
| + 'target_name': 'icu_data',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'icu_data_package',
|
| + ],
|
| + 'conditions': [
|
| + ['icu_use_data_file_flag==1', {
|
| + 'actions': [
|
| + {
|
| + # TODO: Get it generated at the right
|
| + # place with the right name?
|
| + 'action_name': 'copy_rename_icudtl_dat',
|
| + 'inputs': [
|
| + '<(icu_gen_tmp_dir)/icudt<(ICU_VER)l.dat',
|
| + ],
|
| + 'outputs': [
|
| + '<(PRODUCT_DIR)/icudtl.dat',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/copy_rename_file.py',
|
| + '<(icu_gen_tmp_dir)/icudt<(ICU_VER)l.dat',
|
| + '<(PRODUCT_DIR)/icudtl.dat',
|
| + ]
|
| + }
|
| + ]
|
| + }],
|
| + ['icu_use_data_file_flag==0 and OS=="win"', {
|
| + 'actions': [
|
| + {
|
| + # TODO: Get it generated at the right
|
| + # place with the right name?
|
| + 'action_name': 'copy_rename_icudtl_dll',
|
| + 'inputs': [
|
| + # Windows pkgdata puts the dll in the
|
| + # Source directory.
|
| + '<(icu_gen_dir)/icudt<(ICU_VER).dll',
|
| + ],
|
| + 'outputs': [
|
| + '<(PRODUCT_DIR)/icudtl.dll',
|
| + ],
|
| + 'action': [
|
| + 'python',
|
| + 'build_tools/copy_rename_file.py',
|
| + '<(icu_gen_dir)/icudt<(ICU_VER).dll',
|
| + '<(PRODUCT_DIR)/icudtl.dll',
|
| + ]
|
| + }
|
| + ]
|
| + }],
|
| + ],
|
| + },
|
| + ], # targets
|
| +}
|
|
|