| How to rebuild the ICU data files. |
| |
| This is based off of section B in the README.chromium file. |
| |
| 1. Set ICU_ROOT to the directory of the ICU source code in the Cobalt source |
| tree, e.g. `$COBALT_SRC_ROOT/src/third_party/icu`. |
| |
| 2. Create a build directory outside of the Cobalt codebase, and make that your |
| current working directory. Set ICU_DATA_ROOT to this directory. |
| |
| 3. Configure the ICU build. Note that we setup our compiler defines in the same |
| way that they are set when building ICU within Cobalt, according to our |
| icu.gyp file. |
| |
| Run |
| |
| ``` |
| ICU_DATA_FILTER_FILE="$ICU_ROOT/filters/cobalt.json" \ |
| env CPPFLAGS="-DUCONFIG_NO_LEGACY_CONVERSION=1 -DU_CHARSET_IS_UTF8=1 \ |
| -DUCONFIG_ONLY_HTML_CONVERSION=1 -DUCONFIG_NO_TRANSLITERATION=1 \ |
| -DUCONFIG_NO_COLLATION=1" \ |
| "$ICU_ROOT/source/runConfigureICU" --enable-debug --disable-release \ |
| Linux/gcc --disable-tests --disable-layoutex |
| |
| ``` |
| |
| 4. Run `$ICU_ROOT/cast/patch_locale.sh && make -j 120` |
| |
| 5. Run `$ICU_ROOT/scripts/clean_up_data_source.sh` to clean up the changes |
| made to $ICU_ROOT from the call to `patch_locale.sh`. |
| |
| Cobalt uses a packaged ICU data file instead of individual files. This packaged |
| ICU data file is used during the build to link ICU data into the Cobalt binary. |
| |
| 6. Replace the files in this directory with the new files that you have built. |
| |
| Run: |
| |
| ``` |
| cd $COBALT_SRC_ROOT/third_party/icu/cobalt |
| rm -rf * |
| cp $ICU_DATA_ROOT/data/out/tmp/icudt68l.dat . |
| cp $ICU_DATA_ROOT/data/out/tmp/icudt68b.dat . |
| ``` |
| |
| Note that at the time of this writing, the final resulting contents had a size |
| of 4.6MB, from running the command |
| `du -sh $COBALT_SRC_ROOT/third_party/icu/cobalt/icudt68l.dat`. |
| |
| ******************************************************************************** |
| |
| You should now have the ICU data files generated and ready to go in the Cobalt |
| source tree, and you can clean up any outstanding files. If there are any |
| leftover changes in your $ICU_ROOT directory, you can revert them. At this |
| point you can run `gn gen`, run `ninja`, and run Cobalt and it should work. |