New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICU package improvements #336
Comments
👍 When I started working on arabic shaping, I was using a convenience function introduced in ICU 58, |
I'm working on this today and so far have found:
Next steps:
|
Also not seeing CPPFLAGS being picked up on linux: https://travis-ci.org/mapbox/mason/jobs/199016774#L2373 |
Also noticing |
Confirmed. While re-enabling break iteration increases
And only 2 from the C++ API:
These symbols resulted in a binary size of 4.7 MB:
After changing out the |
Found I could also disable these and save another Next step now is to shrink the data library size, but am currently blocked on this because the customizer is not available for boost 1.58 (only 1.57 and earlier) - refs https://ssl.icu-project.org/trac/ticket/12835 |
@boundsj Fixing the mistakes @springmeyer found could potentially slim down the iOS 3.5 SDK size, although I think it'll be a pretty small difference. |
Update on my progress: still blocked by the inability to shrink the .dat size. I tried using the custom tools in https://github.com/nodejs/node/tree/master/tools/icu. I got them working over in icu-fixes...shrink-icu-data. However they strip out the break iterator data and many needed locales, and it is not obvious to me how to configure those tools to keep these. So, https://ssl.icu-project.org/datacustom/ still is the only way to shrink the data file, and its still not available for 58.1. I can't ship Mapnik binaries without it because the .dat would swell from 8 MB to 25 MB. So the only remaining option I can think of is to create an icu 57 package. So, when I get time I'll copy the 58 package and modify to make it work with 57. |
@brunoabinader Made a great change to MBGL so that it's no longer dependent on having |
Thanks @ChrisLoer - not having to customize sounds ideal. Overall update on this ticket (and general icu packages) is:
|
Shortlist of things needed for the ICU package to work well for both mbgl-native and mapnik usage.
Current status is that the ICU
55.1
is tested and works with Mapnik while the ICU58.0
package is tested and works for MBGL. Ideally we'd test and confirm a single package that works for both important downstream apps. And then rebuild ourboost_libregex_icu
package against it.TODO:
Base Data (294 KB)
(can't deselect)Break Iterator (4327 KB)
(needed for mapnik line breaking: https://github.com/mapnik/mapnik/blob/df51f6087c509b2105b2a72d46c27fe585babe1f/src/text/text_layout.cpp#L208-L305)Collators (3216 KB)
(needed for boost_regex)-DUCONFIG_NO_BREAK_ITERATION=1
to-DUCONFIG_NO_BREAK_ITERATION=0
to allow Mapnik line breaking to work-DUCONFIG_NO_FORMATTING=1
?-DUCONFIG_NO_TRANSLITERATION=1
?-DUCONFIG_NO_REGULAR_EXPRESSIONS=1
?/cc @ChrisLoer @artemp
The text was updated successfully, but these errors were encountered: