node/tools/icu
Michael Dawson 7ea2fc8cc4
tools: allow icutrim.py to run on python2
Refs: https://github.com/nodejs/build/issues/2998

Small icu seems broken from 14.x since it uses
python2. Although main no longer supports python2
landing and backporting this change to the 14.x line would
allow us to simplify future backports as currently
the files are the same across lines.

Signed-off-by: Michael Dawson <mdawson@devrus.com>
PR-URL: https://github.com/nodejs/node/pull/46263
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-01-21 20:05:17 +00:00
..
current_ver.dep deps: update ICU to 72.1 2022-10-25 14:13:17 +00:00
icu_small.json
icu_versions.json deps: bump minimum ICU version to 71 2022-10-11 07:27:08 +02:00
icu-generic.gyp build: avoid redefined macro 2022-11-22 14:54:19 +00:00
icu-system.gyp
iculslocs.cc
icutrim.py tools: allow icutrim.py to run on python2 2023-01-21 20:05:17 +00:00
no-op.cc
README.md doc: update link of ICU data slicer 2022-06-20 11:20:57 +02:00
shrink-icu-src.py

Notes about the tools/icu subdirectory

This directory contains tools and information about the International Components for Unicode (ICU) integration. Both V8 and Node.js use ICU to provide internationalization functionality.

  • patches/ are one-off patches, actually entire source file replacements, organized by ICU version number.
  • icu_small.json controls the "small" (English only) ICU. It is input to icutrim.py
  • icu-generic.gyp is the build file used for most ICU builds within ICU.
  • icu-system.gyp is an alternate build file used when --with-intl=system-icu is invoked. It builds against the pkg-config located ICU.
  • iculslocs.cc is source for the iculslocs utility, invoked by icutrim.py as part of repackaging. Not used separately. See source for more details.
  • no-op.cc contains an empty function to convince gyp to use a C++ compiler.
  • shrink-icu-src.py is used during upgrade (see guide below).

Note:

The files in this directory were written for the Node.js v0.12 effort. The original intent was to merge the tools such as icutrim.py and iculslocs.cc back into ICU. ICU has gained its own “data slicer” tool. There is an issue open, https://github.com/nodejs/node/issues/25136 for replacing icutrim.py with the ICU data slicer.

See Also