| 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..ee0c2f196a01d80ac34e21c282ab099a7f349b80
|
| --- /dev/null
|
| +++ b/gn_data_build_system/BUILD.gn
|
| @@ -0,0 +1,966 @@
|
| +# 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) {
|
| + 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,
|
| + "--quiet", # Chromium addition to silence warnings.
|
| + "-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,
|
| + "--quiet", # Chromium addition to silence warnings.
|
| + "--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
|
|
|