Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Unified Diff: gn_data_build_system/BUILD.gn

Issue 1000163003: Generate the icu data binaries at compile time instead of checking in binaries Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: Fixed warnings in cross compiling Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build_tools/write_res_index.py ('k') | gn_data_build_system/run.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « build_tools/write_res_index.py ('k') | gn_data_build_system/run.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698