Chromium Code Reviews| Index: gn_data_build_system/BUILD.gn |
| diff --git a/gn_data_build_system/BUILD.gn b/gn_data_build_system/BUILD.gn |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..56465ccacf79ca395cec7d9b874e8299e02f0f5f |
| --- /dev/null |
| +++ b/gn_data_build_system/BUILD.gn |
| @@ -0,0 +1,964 @@ |
| +# Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| + |
| +ICU_VER = 54 |
| +icu_gen_dir = "$target_gen_dir/icudt${ICU_VER}l" |
| +icu_gen_tmp_dir = "$target_gen_dir/tmp_icudt${ICU_VER}l" |
| + |
| +vars = exec_script("//build/gypi_to_gn.py", |
| + [ |
| + rebase_path("../icu_data.gypi"), |
| + "--replace=<(icu_gen_dir)=$icu_gen_dir", |
| + "--replace=<(icu_gen_tmp_dir)=$icu_gen_tmp_dir", |
| + ], |
| + "scope", |
| + [ "../icu_data.gypi" ]) |
| + |
| +genrb_exe = rebase_path(get_label_info("../gn_tool_build_system:genrb", |
| + "root_out_dir") + "/genrb") |
| + |
| +gencnval_exe = rebase_path(get_label_info("../gn_tool_build_system:gencnval", |
| + "root_out_dir") + "/gencnval") |
| + |
| +icupkg_exe = rebase_path(get_label_info("../gn_tool_build_system:icupkg", |
| + "root_out_dir") + "/icupkg") |
| + |
| +makeconv_exe = rebase_path(get_label_info("../gn_tool_build_system:makeconv", |
| + "root_out_dir") + "/makeconv") |
| + |
| +gendict_exe = rebase_path(get_label_info("../gn_tool_build_system:gendict", |
| + "root_out_dir") + "/gendict") |
| + |
| +genbrk_exe = rebase_path(get_label_info("../gn_tool_build_system:genbrk", |
| + "root_out_dir") + "/genbrk") |
| + |
| +gencfu_exe = rebase_path(get_label_info("../gn_tool_build_system:gencfu", |
| + "root_out_dir") + "/gencfu") |
| + |
| +pkgdata_exe = rebase_path(get_label_info("../gn_tool_build_system:pkgdata", |
| + "root_out_dir") + "/pkgdata") |
| + |
| + |
| +local_icu_data_curr_res_raw_sources = vars.icu_data_curr_res_raw_sources |
| +local_icu_data_region_res_sources = vars.icu_data_region_res_sources |
| +local_icu_data_region_res_alias_sources = vars.icu_data_region_res_alias_sources |
| + |
| +icu_data_generated_contents = ([ ] + |
| + # Coll |
| + vars.icu_data_coll_res_root_generated + |
| + vars.icu_data_coll_res_generated + |
| + vars.icu_data_coll_res_alias_generated + |
| + ["$icu_gen_dir/coll/res_index.res"] + |
| + # Brk_brk |
| + vars.icu_data_brkitr_brk_generated + |
| + # Brk_res |
| + vars.icu_data_brkitr_res_root_generated + |
| + vars.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 |
| + vars.icu_data_locales_res_root_generated + |
| + vars.icu_data_locales_res_generated + |
| + # Misc + end of Locales |
| + vars.icu_data_locales_res_alias_generated + |
| + vars.icu_data_misc_res_generated + |
| + ["$icu_gen_dir/res_index.res"] + |
| + ["$icu_gen_dir/pool.res"] + |
| + # Lang |
| + vars.icu_data_lang_res_root_generated + |
| + vars.icu_data_lang_res_generated + |
| + vars.icu_data_lang_res_alias_generated + |
| + ["$icu_gen_dir/lang/res_index.res"] + |
| + ["$icu_gen_dir/lang/pool.res"] + |
| + # Region |
| + vars.icu_data_region_res_root_generated + |
| + vars.icu_data_region_res_generated + |
| + vars.icu_data_region_res_alias_generated + |
| + ["$icu_gen_dir/region/res_index.res"] + |
| + ["$icu_gen_dir/region/pool.res"] + |
| + # Zone |
| + vars.icu_data_zone_res_root_generated + |
| + vars.icu_data_zone_res_generated + |
| + vars.icu_data_zone_res_alias_generated + |
| + vars.icu_data_zone_res_extra_generated + |
| + ["$icu_gen_dir/zone/res_index.res"] + |
| + ["$icu_gen_dir/zone/pool.res"] + |
| + # Unit |
| + vars.icu_data_unit_res_root_generated + |
| + vars.icu_data_unit_res_generated + |
| + vars.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 |
| + vars.icu_data_ucm_generated + |
| + |
| + # Currency |
| + vars.icu_data_curr_res_root_generated + |
| + vars.icu_data_curr_res_supplemental_generated + |
| + vars.icu_data_curr_res_generated + |
| + vars.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"] |
| + ) |
| + |
| +put_icu_data_on_diet = target_os == "android" |
| + |
| +languages_to_minimize = "bn,et,gu,kn,ml,mr,ms,ta,te" # Move to gypi? |
| + |
| +if (put_icu_data_on_diet) { |
|
Andrew Hayden (chromium.org)
2015/04/13 13:20:29
Cute :)
|
| + icu_data_generated_contents += [ |
| + # Workaround items for not having cjdict.dict |
| + "$icu_gen_dir/brkitr/word_ja.brk", |
| + "$icu_gen_dir/brkitr/ja.res", |
| + ] |
| + icu_data_generated_contents -= ( |
| + # Region data is fetched from the Android API on Android. |
| + vars.icu_data_region_res_root_generated + |
| + vars.icu_data_region_res_generated + |
| + vars.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", |
| + ] |
| + ) |
| + # Remove from raw_sources since raw_sources is used when building |
| + # res_index.txt. |
| + local_icu_data_curr_res_raw_sources -= [ |
| + # Languages from 'languages_to_minimize' above. |
| + "source/data/curr/bn.txt", |
| + "source/data/curr/et.txt", |
| + "source/data/curr/gu.txt", |
| + "source/data/curr/kn.txt", |
| + "source/data/curr/ml.txt", |
| + "source/data/curr/mr.txt", |
| + "source/data/curr/ms.txt", |
| + "source/data/curr/ta.txt", |
| + "source/data/curr/te.txt", |
| + ] |
| + local_icu_data_region_res_sources = [] |
| + local_icu_data_region_res_alias_sources = [] |
| +} else { |
| + # Workaround files listed in case cjdict.dict is missing. Not needed |
| + # since we'll include cjdict.dict. |
| + icu_data_generated_contents -= [ |
| + "$icu_gen_dir/brkitr/word_ja.brk", |
| + "$icu_gen_dir/brkitr/ja.res", |
| + ] |
| +} |
| + |
| +icu_resource_files_file = "$icu_gen_tmp_dir/icu_data_resource_list.tmp" |
| +write_file(icu_resource_files_file, icu_data_generated_contents) |
| + |
| +group("icu_cnv_base_files") { |
| + deps = [ |
| + ":icu_cnvalias", |
| + ":icu_icupkg_nrm", |
| + ":icu_ucadata_icu", |
| + ] |
| +} |
| + |
| +action_foreach("icu_icupkg_nrm") { |
| + script = "run.py" |
| + sources = rebase_path(vars.icu_data_nrm_sources, |
| + ".", |
| + "..") |
| + inputs = [ |
| + icupkg_exe, |
| + ] |
| + outputs = [ |
| + "$icu_gen_dir/{{source_file_part}}", |
| + ] |
| + args = [ |
| + icupkg_exe, |
| + "-tl", |
| + "{{source}}", |
| + rebase_path("$icu_gen_dir/{{source_file_part}}"), |
| + ] |
| +} |
| + |
| +action("icu_cnvalias") { |
| + script = "run.py" |
| + inputs = [ |
| + gencnval_exe, |
| + "../source/data/mappings/convrtrs.txt", |
| + ] |
| + outputs = [ |
| + "$icu_gen_dir/cnvalias.icu", |
| + ] |
| + |
| + args = [ |
| + gencnval_exe, |
| + "-d", |
| + rebase_path(icu_gen_dir), |
| + rebase_path("../source/data/mappings/convrtrs.txt"), |
| + ] |
| +} |
| + |
| +action("icu_ucadata_icu") { |
| + script = "run.py" |
| + inputs = [ |
| + icupkg_exe, |
| + "../source/data/in/coll/ucadata-implicithan.icu", |
| + ] |
| + outputs = [ |
| + "$icu_gen_dir/coll/ucadata.icu", |
| + ] |
| + |
| + args = [ |
| + icupkg_exe, |
| + "-tl", |
| + rebase_path("../source/data/in/coll/ucadata-implicithan.icu"), |
| + rebase_path("$icu_gen_dir/coll/ucadata.icu"), |
| + ] |
| +} |
| + |
| +action_foreach("icu_cnv_ucm_files") { |
| + script = "run.py" |
| + sources = rebase_path(vars.icu_data_ucm_sources, |
| + ".", |
| + "..") |
| + inputs = [ |
| + makeconv_exe, |
| + ] |
| + outputs = [ |
| + "$icu_gen_dir/{{source_name_part}}.cnv", |
| + ] |
| + args = [ |
| + makeconv_exe, |
| + "-c", |
| + "-d", |
| + rebase_path(icu_gen_dir), |
| + "{{source}}", |
| + ] |
| +} |
| + |
| +action("icu_filtered_for_size_files") { |
| + script = "../build_tools/filter_data_for_size.py" |
| + inputs = ([ |
| + # Order here is important. See indexing below. |
| + "../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", |
| + "../source/data/zone/pool.res", |
| + ] + |
| + rebase_path(local_icu_data_curr_res_raw_sources + |
| + vars.icu_data_curr_res_alias_raw_sources + |
| + vars.icu_data_curr_res_supplemental_raw_sources + |
| + vars.icu_data_locales_res_raw_sources + |
| + vars.icu_data_locales_res_alias_raw_sources + |
| + vars.icu_data_lang_res_raw_sources + |
| + vars.icu_data_lang_res_alias_raw_sources + |
| + vars.icu_data_zone_res_raw_sources + |
| + vars.icu_data_zone_res_alias_raw_sources, |
| + ".", |
| + "..") |
| + ) |
| + outputs = ([ |
| + # Order here is important. See indexing below. |
| + "$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_gen_tmp_dir/zone/pool.res", |
| + ] + |
| + vars.icu_data_curr_res_filtered_sources + |
| + vars.icu_data_curr_res_alias_filtered_sources + |
| + vars.icu_data_curr_res_supplemental_filtered_sources + |
| + vars.icu_data_locales_res_filtered_sources + |
| + vars.icu_data_locales_res_alias_filtered_sources + |
| + vars.icu_data_lang_res_filtered_sources + |
| + vars.icu_data_lang_res_alias_filtered_sources + |
| + vars.icu_data_zone_res_filtered_sources + |
| + vars.icu_data_zone_res_alias_filtered_sources |
| + ) |
| + |
| + # To go from inputs to outputs in gn: |
| + # outputs = rebase_path(rebase_path(inputs, "../source/data"), |
| + # ".", icu_gen_tmp_dir) |
| + # But then we would diverge from icu_data.gyp and might not catch |
| + # errors in the vars above (that would not be needed if we only had gn). |
| + computed_outputs = rebase_path(rebase_path(inputs, "../source/data"), |
| + ".", icu_gen_tmp_dir) |
| + assert(rebase_path(computed_outputs) == rebase_path(outputs)) |
| + |
| + if (put_icu_data_on_diet) { |
| + filter_mode = "strip-for-size" |
| + } else { |
| + filter_mode = "clean-copy" |
| + } |
| + args = [ |
| + "--mode", |
| + filter_mode, |
| + "--in-word-txt", |
| + rebase_path(inputs[0]), |
| + "--out-word-txt", |
| + rebase_path(outputs[0]), |
| + "--in-brkitr-root-txt", |
| + rebase_path(inputs[1]), |
| + "--out-brkitr-root-txt", |
| + rebase_path(outputs[1]), |
| + "--in-brkitr-ja-txt", |
| + rebase_path(inputs[2]), |
| + "--out-brkitr-ja-txt", |
| + rebase_path(outputs[2]), |
| + "--currency-keep-list", |
| + rebase_path("../android/currencies.list"), |
| + "--in-curr-dir", |
| + rebase_path("../source/data/curr"), |
| + "--out-curr-dir", |
| + rebase_path("$icu_gen_tmp_dir/curr"), |
| + "--minimize-language-list", |
| + languages_to_minimize, |
| + "--in-locales-dir", |
| + rebase_path("../source/data/locales"), |
| + "--out-locales-dir", |
| + rebase_path("$icu_gen_tmp_dir/locales"), |
| + "--in-lang-dir", |
| + rebase_path("../source/data/lang"), |
| + "--out-lang-dir", |
| + rebase_path("$icu_gen_tmp_dir/lang"), |
| + "--in-zone-dir", |
| + rebase_path("../source/data/zone"), |
| + "--out-zone-dir", |
| + rebase_path("$icu_gen_tmp_dir/zone"), |
| + "--remove-data-already-existing-in-android", |
| + ] |
| +} |
| + |
| +dicts_with_transform = [ |
| + ["burmesedict", "0x1000"], |
| + ["khmerdict", "0x1780"], |
| + ["thaidict", "0xe00"], |
| + ["laodict", "0xe80"], |
| +] |
| + |
| +if (!put_icu_data_on_diet) { |
| + dicts_with_transform += [["cjdict", ""]] |
| +} |
| + |
| +foreach(dict_with_transform, dicts_with_transform) { |
| + dict_to_compile = dict_with_transform[0] |
| + dict_transform_offset = dict_with_transform[1] |
| + |
| + action("icu_dict_" + dict_to_compile) { |
| + script = "run.py" |
| + inputs = [ |
| + gendict_exe, |
| + "../source/data/brkitr/$dict_to_compile.txt", |
| + ] |
| + outputs = [ |
| + "$icu_gen_dir/brkitr/$dict_to_compile.dict", |
| + ] |
| + |
| + if (dict_transform_offset == "") { |
| + target_args = ["--uchars"] |
| + } else { |
| + target_args = [ |
| + "--bytes", |
| + "--transform", |
| + "offset-$dict_transform_offset", |
| + ] |
| + } |
| + args = [ |
| + gendict_exe, |
| + ] + target_args + [ |
| + "-c", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + rebase_path(inputs[1]), |
| + rebase_path(outputs[0]), |
| + ] |
| + } |
| +} |
| + |
| +action_foreach("icu_brk_files") { |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ":icu_filtered_for_size_files", |
| + ] |
| + inputs = [ |
| + genbrk_exe, |
| + ] |
| + sources = rebase_path(vars.icu_data_brkitr_brk_sources, |
| + ".", |
| + "..") |
| + |
| + outputs = [ "$icu_gen_dir/brkitr/{{source_name_part}}.brk" ] |
| + args = [ |
| + genbrk_exe, |
| + "-c", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-r", |
| + "{{source}}", |
| + "-o", |
| + rebase_path("$icu_gen_dir/brkitr/{{source_name_part}}.brk"), |
| + ] |
| +} |
| + |
| +action_foreach("icu_locales_res_files") { |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ":icu_filtered_for_size_files", |
| + ] |
| + inputs = [ |
| + genrb_exe, |
| + "$icu_gen_tmp_dir/locales/pool.res", |
| + ] |
| + sources = rebase_path(vars.icu_data_locales_res_root_sources + |
| + vars.icu_data_locales_res_filtered_sources + |
| + vars.icu_data_locales_res_alias_filtered_sources, |
| + ".", |
| + "..") |
| + |
| + outputs = [ "$icu_gen_dir/{{source_name_part}}.res" ] |
| + args = [ |
| + genrb_exe, |
| + "--usePoolBundle", |
| + "-k", |
| + "-R", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-s", |
| + rebase_path(icu_gen_tmp_dir + "/locales"), |
| + "-d", |
| + rebase_path(icu_gen_dir), |
| + "{{source_file_part}}", |
| + ] |
| +} |
| + |
| +action_foreach("icu_misc_res_files") { |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ] |
| + inputs = [ |
| + genrb_exe, |
| + ] |
| + sources = rebase_path(vars.icu_data_misc_res_sources, |
| + ".", |
| + "..") |
| + |
| + outputs = [ "$icu_gen_dir/{{source_name_part}}.res" ] |
| + args = [ |
| + genrb_exe, |
| + "-k", |
| + "-R", |
| + "-q", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-s", |
| + rebase_path("../source/data/misc"), |
| + "-d", |
| + rebase_path(icu_gen_dir), |
| + "{{source_file_part}}", |
| + ] |
| +} |
| + |
| +res_indexes = [ |
| + # In-dir, out-dir, uses-pool, source-name-list. |
| + ["locales", "", true, vars.icu_data_locales_res_raw_sources], |
| + ["curr", "/curr", true, local_icu_data_curr_res_raw_sources], |
| + ["lang", "/lang", true, vars.icu_data_lang_res_raw_sources], |
| + ["region", "/region", true, local_icu_data_region_res_sources], |
| + ["zone", "/zone", true, vars.icu_data_zone_res_raw_sources], |
| + ["unit", "/unit", true, vars.icu_data_unit_res_sources], |
| + ["coll", "/coll", false, vars.icu_data_coll_res_sources], |
| + ["brkitr", "/brkitr", false, vars.icu_data_brkitr_res_sources + |
| + vars.icu_data_brkitr_res_filtered_sources], |
| + ["rbnf", "/rbnf", false, []], |
| +] |
| + |
| +foreach(res_index, res_indexes) { |
| + res_index_dir = res_index[0] |
| + res_index_output_dir = res_index[1] |
| + res_index_uses_pool = res_index[2] |
| + res_index_sources = [] # Or we will fail to overwrite the value |
| + # from the last iteration. |
| + res_index_sources = res_index[3] |
| + |
| + action("icu_write_${res_index_dir}_res_index_txt") { |
| + script = "../build_tools/write_res_index.py" |
| + inputs = [ |
| + # Only using file names, not file contents of source files. |
| + ] |
| + outputs = [ |
| + icu_gen_tmp_dir + res_index_output_dir + "/res_index.txt", |
| + ] |
| + args = [] |
| + if (res_index_dir == "locales") { |
| + args += [ |
| + "--cldr-version", |
| + "1.9", # FIXME: Move somewhere |
| + ] |
| + } |
| + |
| + args += [ |
| + "--outfile", |
| + rebase_path(outputs[0]), |
| + ] |
| + args += rebase_path(res_index_sources, |
| + ".", |
| + "..") |
| + } |
| + |
| + action("icu_${res_index_dir}_res_index_res_file") { |
| + script = "run.py" |
| + deps = [ |
| + ":icu_write_${res_index_dir}_res_index_txt" |
| + # Simple resources, do not need anything from icu_cnv_base_files. |
| + # ":icu_cnv_base_files", |
| + ] |
| + inputs = [ |
| + genrb_exe, |
| + icu_gen_tmp_dir + res_index_output_dir + "/res_index.txt", |
| + ] |
| + outputs = [ |
| + icu_gen_dir + res_index_output_dir + "/res_index.res", |
| + ] |
| + args = [ |
| + genrb_exe, |
| + "-k", |
| + "-R", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-d", |
| + rebase_path(icu_gen_dir + res_index_output_dir), |
| + rebase_path(inputs[1]), |
| + ] |
| + } |
| + |
| + if (res_index_uses_pool) { |
| + action("icu_${res_index_dir}_pool_res") { |
| + script = "run.py" |
| + inputs = [ |
| + icupkg_exe, |
| + "../source/data/$res_index_dir/pool.res", |
| + ] |
| + outputs = [ |
| + icu_gen_dir + res_index_output_dir + "/pool.res", |
| + ] |
| + args = [ |
| + icupkg_exe, |
| + "-tl", |
| + rebase_path(inputs[1]), |
| + rebase_path(outputs[0]), |
| + ] |
| + } |
| + } |
| +} |
| + |
| +res_chunks = [ |
| + # Dir, source_files, is_filtered. |
| + ["curr", vars.icu_data_curr_res_root_sources + |
| + vars.icu_data_curr_res_supplemental_filtered_sources + |
| + vars.icu_data_curr_res_filtered_sources + |
| + vars.icu_data_curr_res_alias_filtered_sources, true], |
| + ["lang", vars.icu_data_lang_res_root_sources + |
| + vars.icu_data_lang_res_filtered_sources + |
| + vars.icu_data_lang_res_alias_filtered_sources, true], |
| + ["region", vars.icu_data_region_res_root_sources + |
| + local_icu_data_region_res_sources + |
| + local_icu_data_region_res_alias_sources, false], |
| + ["zone", vars.icu_data_zone_res_root_sources + |
| + vars.icu_data_zone_res_filtered_sources + |
| + vars.icu_data_zone_res_alias_filtered_sources + |
| + vars.icu_data_zone_res_extra_sources, true], |
| + ["unit", vars.icu_data_unit_res_root_sources + |
| + vars.icu_data_unit_res_sources + |
| + vars.icu_data_unit_res_alias_sources, false], |
| +] |
| + |
| +foreach(res_chunk, res_chunks) { |
| + chunk_dir = res_chunk[0] |
| + files = [] |
| + files = res_chunk[1] |
| + is_filtered = res_chunk[2] |
| + |
| + if (is_filtered) { |
| + source_dir = icu_gen_tmp_dir |
| + } else { |
| + source_dir = "../source/data" |
| + } |
| + |
| + action_foreach("icu_${chunk_dir}_res_files") { |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ":icu_filtered_for_size_files", # Some have this. Keep it simple. |
| + ] |
| + |
| + inputs = [ |
| + genrb_exe, |
| + "$source_dir/$chunk_dir/pool.res", |
| + ] |
| + sources = rebase_path(files, |
| + ".", |
| + "..") |
| + |
| + outputs = [ "$icu_gen_dir/$chunk_dir/{{source_name_part}}.res" ] |
| + args = [ |
| + genrb_exe, |
| + "--usePoolBundle", |
| + "-k", |
| + "-R", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-s", |
| + rebase_path("$source_dir/$chunk_dir"), |
| + "-d", |
| + rebase_path("$icu_gen_dir/$chunk_dir"), |
| + "{{source_file_part}}", |
| + ] |
| + } |
| +} |
| +# START COLL |
| +action_foreach("icu_coll_res_files") { |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ":icu_misc_res_files", # Specifically keyTypeData for sr_Latn.txt |
| + ] |
| + section_dir = "coll" |
| + inputs = [ |
| + genrb_exe, |
| + "$icu_gen_dir/keyTypeData.res", |
| + ] |
| + sources = rebase_path(vars.icu_data_coll_res_root_sources + |
| + vars.icu_data_coll_res_sources + |
| + vars.icu_data_coll_res_alias_sources, |
| + ".", |
| + "..") |
| + |
| + outputs = [ "$icu_gen_dir/$section_dir/{{source_name_part}}.res" ] |
| + args = [ |
| + genrb_exe, |
| + "-k", |
| + "-R", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-s", |
| + rebase_path("../source/data/$section_dir"), |
| + "-d", |
| + rebase_path("$icu_gen_dir/$section_dir"), |
| + "{{source_file_part}}", |
| + ] |
| +} |
| +# END COLL |
| + |
| +# START BRKITR |
| +action_foreach("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. |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ] |
| + section_dir = "brkitr" |
| + inputs = [ |
| + genrb_exe, |
| + "$icu_gen_dir/brkitr/cjdict.dict", |
| + "$icu_gen_dir/brkitr/burmesedict.dict", |
| + "$icu_gen_dir/brkitr/khmerdict.dict", |
| + "$icu_gen_dir/brkitr/laodict.dict", |
| + "$icu_gen_dir/brkitr/thaidict.dict" |
| + ] + vars.icu_data_brkitr_brk_generated |
| + |
| + if (put_icu_data_on_diet) { |
| + inputs -= [ |
| + "$icu_gen_dir/brkitr/cjdict.dict", |
| + ] |
| + } |
| + |
| + sources = rebase_path( |
| + vars.icu_data_brkitr_res_sources, |
| + ".", |
| + "..") |
| + |
| + outputs = [ "$icu_gen_dir/$section_dir/{{source_name_part}}.res" ] |
| + args = [ |
| + genrb_exe, |
| + "-k", |
| + "-R", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-s", |
| + rebase_path("../source/data/$section_dir"), |
| + "-d", |
| + rebase_path("$icu_gen_dir/$section_dir"), |
| + "{{source_file_part}}", |
| + ] |
| +} |
| + |
| +action_foreach("icu_brkitr_res_filtered_files") { |
| + # Same as icu_brkitr_res_files except that -s (source dir) is |
| + # icu_gen_tmp_dir. |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ":icu_filtered_for_size_files", |
| + ] |
| + section_dir = "brkitr" |
| + inputs = [ |
| + genrb_exe, |
| + "$icu_gen_dir/brkitr/cjdict.dict", |
| + "$icu_gen_dir/brkitr/burmesedict.dict", |
| + "$icu_gen_dir/brkitr/khmerdict.dict", |
| + "$icu_gen_dir/brkitr/laodict.dict", |
| + "$icu_gen_dir/brkitr/thaidict.dict" |
| + ] + vars.icu_data_brkitr_brk_generated |
| + |
| + if (put_icu_data_on_diet) { |
| + inputs -= [ |
| + "$icu_gen_dir/brkitr/cjdict.dict", |
| + ] |
| + } |
| + |
| + sources = rebase_path( |
| + vars.icu_data_brkitr_res_root_filtered_sources + |
| + vars.icu_data_brkitr_res_filtered_sources, |
| + ".", |
| + "..") |
| + |
| + outputs = [ "$icu_gen_dir/$section_dir/{{source_name_part}}.res" ] |
| + args = [ |
| + genrb_exe, |
| + "-k", |
| + "-R", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-s", |
| + rebase_path("$icu_gen_tmp_dir/$section_dir"), |
| + "-d", |
| + rebase_path("$icu_gen_dir/$section_dir"), |
| + "{{source_file_part}}", |
| + ] |
| +} |
| +# END BRKITR |
| + |
| +# START RBNF |
| +# END RBNF |
| + |
| +# START TRANSLIT |
| +action("icu_data_translit") { |
| + script = "run.py" |
| + deps = [ |
| + ":icu_cnv_base_files", |
| + ] |
| + section_dir = "translit" |
| + inputs = [ |
| + genrb_exe, |
| + "../source/data/$section_dir/css3transform.txt", |
| + ] |
| + outputs = [ "$icu_gen_dir/$section_dir/root.res" ] |
| + args = [ |
| + genrb_exe, |
| + "-k", |
| + "-R", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-s", |
| + rebase_path("../source/data/$section_dir"), |
| + "-d", |
| + rebase_path("$icu_gen_dir/$section_dir"), |
| + "css3transform.txt", |
| + ] |
| +} |
| +# END TRANSLIT |
| + |
| +# START CONFUSABLES |
| +action("icu_data_confusables") { |
| + script = "run.py" |
| + inputs = [ |
| + gencfu_exe, |
| + "$icu_gen_dir/cnvalias.icu", |
| + "../source/data/unidata/confusables.txt", |
| + "../source/data/unidata/confusablesWholeScript.txt", |
| + ] |
| + outputs = [ |
| + "$icu_gen_dir/confusables.cfu", |
| + ] |
| + |
| + args = [ |
| + gencfu_exe, |
| + "-c", |
| + "-i", |
| + rebase_path(icu_gen_dir), |
| + "-r", |
| + rebase_path("../source/data/unidata/confusables.txt"), |
| + "-w", |
| + rebase_path("../source/data/unidata/confusablesWholeScript.txt"), |
| + "-o", |
| + rebase_path(outputs[0]) |
| + ] |
| +} |
| +# END CONFUSABLES |
| + |
| +# START icudata.lst/icupkg.inc/icudtl.dat |
| +action("icu_write_icudata_lst") { |
| + write_file(icu_resource_files_file, icu_data_generated_contents) |
| + script = "../build_tools/write_icudata_lst.py" |
| + inputs = [ |
| + icu_resource_files_file, |
| + ] |
| + outputs = [ |
| + "$icu_gen_tmp_dir/icudata.lst", |
| + ] |
| + |
| + args = [ |
| + "--inroot", |
| + rebase_path(icu_gen_dir), |
| + "--infile", |
| + rebase_path(icu_resource_files_file), |
| + "--gn-root", |
| + rebase_path("//."), |
| + "--outfile", |
| + rebase_path(outputs[0]) |
| + ] |
| +} |
| + |
| +action("icu_write_icupkg_inc") { |
| + script = "../build_tools/write_icupkg_inc.py" |
| + outputs = [ |
| + "$icu_gen_tmp_dir/icupkg.inc", |
| + ] |
| + |
| + args = [ |
| + "--outfile", |
| + rebase_path(outputs[0]), |
| + "--ver", |
| + "$ICU_VER", |
| + "--icu-dir", |
| + rebase_path(".."), |
| + ] |
| +} |
| + |
| +import("//third_party/icu/config.gni") |
| + |
| +action("icu_pkgdata") { |
| + script = "run.py" |
| + inputs = [ |
| + pkgdata_exe, |
| + "$icu_gen_tmp_dir/icudata.lst", |
| + "$icu_gen_tmp_dir/icupkg.inc", |
| + ] + icu_data_generated_contents |
| + |
| + deps = ["../gn_tool_build_system:pkgdata"] |
| + |
| + if (icu_use_data_file) { |
| + pkgdata_args = [ |
| + "-m", # Mode |
| + "common", |
| + ] |
| + outputs = [ |
| + "$icu_gen_tmp_dir/result/icudt${ICU_VER}l.dat", |
| + ] |
| + } else { |
| + pkgdata_args = [ |
| + "-m", # Mode |
| + "dll", |
| + "-e", # Entry point |
| + "icudt<(ICU_VER)", |
| + "-L", # Lib name |
| + "icudata", |
| + "-T<(icu_gen_tmp_dir)", |
| + ] |
| + |
| + if (is_win) { |
| + outputs = [ |
| + "$icu_gen_dir/icudt${ICU_VER}l.dll", |
| + ] |
| + } else { |
| + pkgdata_args += [ |
| + "-O", |
| + "<(icu_gen_tmp_dir)/icupkg.inc", |
| + ] |
| + outputs = [ |
| + "$icu_gen_dir/libicudata.so.${ICU_VER}.1", |
| + ] |
| + } |
| + } |
| + args = [ |
| + pkgdata_exe, |
| + ] + pkgdata_args + [ |
| + "-q", # Quiet |
| + "-c", # Default copyright |
| + "-s", # Source |
| + rebase_path(icu_gen_dir), |
| + "-d", # Destination |
| + rebase_path(icu_gen_tmp_dir + "/result"), |
| + "-T", # Temporary directory |
| + rebase_path(icu_gen_tmp_dir), |
| + "-p", # Data name |
| + "icudt${ICU_VER}l", |
| + "-r", # Revision |
| + "${ICU_VER}.1", |
| + rebase_path("$icu_gen_tmp_dir/icudata.lst"), |
| + ] |
| +} |
| + |
| +if (icu_use_data_file && is_ios) { |
| + # TODO(GYP): Support mac resource bundle shown below. |
| + # 'link_settings': { |
| + # 'mac_bundle_resources': [ |
| + # "$icu_gen_tmp_dir/icudt${ICU_VER}l.dat", |
| + # ], |
| + # } |
| +} else if (icu_use_data_file || is_win) { |
| + copy("icu_data") { |
| + if (icu_use_data_file) { |
| + sources = [ "$icu_gen_tmp_dir/result/icudt${ICU_VER}l.dat", ] |
| + outputs = [ "$root_out_dir/icudtl.dat", ] |
| + } else { |
| + sources = [ "$icu_gen_dir/icud${ICU_VER}.dll", ] |
| + outputs = [ "$root_out_dir/icudt.dll", ] |
| + } |
| + } |
| +} else { |
| + source_set("icu_data") { |
| + sources = [ |
| + "$icu_gen_tmp_dir/icudt${ICU_VER}l_dat.S", |
| + ] |
| + } |
| + defines = [ "U_HIDE_DATA_SYMBOL" ] |
| +} |
| +# END icudata.lst/icudtl.dat |