blob: 0bcc31945c4c7a7316dce49b0a8453965b18efca [file] [log] [blame]
Name: ICU (Fuchsia fork of Chromium fork)
License: MIT
License File: LICENSE
Upstream Git: https://chromium.googlesource.com/chromium/deps/icu/
Description:
This directory contains the source code of ICU4C for C/C++, following
Chromium's changes.
This is a slight fork of Chromium's ICU, which itself is a fork of the upstream
ICU project. See the section "LOCAL MODIFICATIONS" for the details of the local
changes.
Note that although Chromium and Chromium ICU's GN files have an `is_fuchsia`
constant that is set to `true` for binaries that target Fuchsia OS, building
_Chromium ICU_ with `is_fuchsia = true` is _not_ the same as building
_Fuchsia ICU_. This is because of the other differences in build rules between
the two.
(Fuchsia ICU can also be built with `is_fuchsia = false`, e.g. for Fuchsia host
targets.)
LOCAL MODIFICATIONS
The local changes made specifically for Fuchsia with respect to the Chromium
ICU original are fenced off like this in the respective files:
# <fuchsia-icu>
... local additions ...
# </fuchsia-icu>
- version.gni contains a config variable which has the major version of the
ICU library.
UPDATE PROCEDURE
To ensure that Fuchsia's ICU repo properly tracks Chromium's version, do the
following when catching up:
1. Add the Chromium upstream remote (first-time only):
Run the following command to add the upstream Chromium copy of the ICU
repository. This is only needed if you have not previously added the
Chromium remote:
$ git remote add chromium https://chromium.googlesource.com/chromium/deps/icu.git
2. Merge from Chromium ToT:
From $FUCHSIA_DIR/third_party/icu on the origin/master branch, run:
$ git merge chromium/master
Fix all the merge conflicts, paying special attention to not override
Fuchsia-specific changes. In particular, make sure the Mac host build does
not break as this configuration is not tested in CQ. If you do not have a
Mac, ask someone who does to test your changes before submitting.
Ensure that the version number in `//version.gni` matches the major version
of the ICU library that is being used. The file `//README.chromium` usually
has the major version number listed in the `Description:` section.
See an example here:
https://fuchsia-review.googlesource.com/c/third_party/icu/+/403454