11cb0ef41Sopenharmony_ci# Notes about the `tools/icu` subdirectory
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_ciThis directory contains tools and information about the
41cb0ef41Sopenharmony_ci[International Components for Unicode][ICU] (ICU) integration.
51cb0ef41Sopenharmony_ciBoth V8 and Node.js use ICU to provide internationalization functionality.
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_ci* `patches/` are one-off patches, actually entire source file replacements,
81cb0ef41Sopenharmony_ci  organized by ICU version number.
91cb0ef41Sopenharmony_ci* `icu_small.json` controls the "small" (English only) ICU. It is input to
101cb0ef41Sopenharmony_ci  `icutrim.py`
111cb0ef41Sopenharmony_ci* `icu-generic.gyp` is the build file used for most ICU builds within ICU.
121cb0ef41Sopenharmony_ci  <!-- have fun -->
131cb0ef41Sopenharmony_ci* `icu-system.gyp` is an alternate build file used when `--with-intl=system-icu`
141cb0ef41Sopenharmony_ci  is invoked. It builds against the `pkg-config` located ICU.
151cb0ef41Sopenharmony_ci* `iculslocs.cc` is source for the `iculslocs` utility, invoked by `icutrim.py`
161cb0ef41Sopenharmony_ci  as part of repackaging. Not used separately. See source for more details.
171cb0ef41Sopenharmony_ci* `no-op.cc` contains an empty function to convince gyp to use a C++ compiler.
181cb0ef41Sopenharmony_ci* `shrink-icu-src.py` is used during upgrade (see guide below).
191cb0ef41Sopenharmony_ci
201cb0ef41Sopenharmony_ciNote:
211cb0ef41Sopenharmony_ci
221cb0ef41Sopenharmony_ci> The files in this directory were written for the Node.js v0.12 effort.
231cb0ef41Sopenharmony_ci> The original intent was to merge the tools such as `icutrim.py` and `iculslocs.cc`
241cb0ef41Sopenharmony_ci> back into ICU. ICU has gained its own “data slicer” tool.
251cb0ef41Sopenharmony_ci> There is an issue open, <https://github.com/nodejs/node/issues/25136>
261cb0ef41Sopenharmony_ci> for replacing `icutrim.py` with the [ICU data slicer][].
271cb0ef41Sopenharmony_ci
281cb0ef41Sopenharmony_ci## See Also
291cb0ef41Sopenharmony_ci
301cb0ef41Sopenharmony_ci* [docs/guides/maintaining-icu.md](../../doc/contributing/maintaining/maintaining-icu.md)
311cb0ef41Sopenharmony_ci  for information on maintaining ICU in Node.js
321cb0ef41Sopenharmony_ci
331cb0ef41Sopenharmony_ci* [docs/api/intl.md](../../doc/api/intl.md) for information on the
341cb0ef41Sopenharmony_ci  internationalization-related APIs in Node.js
351cb0ef41Sopenharmony_ci
361cb0ef41Sopenharmony_ci* [The ICU Homepage][ICU]
371cb0ef41Sopenharmony_ci
381cb0ef41Sopenharmony_ci[ICU]: http://icu-project.org
391cb0ef41Sopenharmony_ci[ICU data slicer]: https://github.com/unicode-org/icu/blob/HEAD/docs/userguide/icu_data/buildtool.md
40