| 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 |