ignore this one On Sat, Apr 4, 2020 at 10:19 AM Khem Raj <[email protected]> wrote: > > Recent versions of ICU (64+) provides a tool for configuring ICU > locale data file with finer granularity [1] > > Default generated size for libicudata.so.66.1 is ~27M, which is quite > large for embedded systems and all of them may not even need all locale > data. > > This patch calls the icudata buildtool during configure on the icudata > and utilizes a filter called 'filter.json` ( empty by default) to > create the data, default behavior should remain same but someone can > add a filter.json in own layer to configure this data, e.g. > > { > "localeFilter": { > "filterType": "language", > "whitelist": [ > "en", > "de", > "it" > ] > } > } > > would only generate the locale data for english/german/italian > > This would reduce the size of libicudata.so.66.1 to 12M > > Ensure that icudata is generated using host-tools so it can deal with > endianness correctly, when host and target systems have different > endianness > > install the icudtata file back into in/ folder so that main build > can now pickup this data file instead of regenerating it and wiping > out the filter changes that are expected to take effect > > [1] > https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md > > Signed-off-by: Khem Raj <[email protected]> > Suggested-by: Wouter Meek <[email protected]> > --- > v2: Fix build for BE systems > v3: Unset AR and RANLIB too > v4: Install fresh icudata back into data/in folder > > meta/recipes-support/icu/icu/filter.json | 2 ++ > meta/recipes-support/icu/icu_66.1.bb | 26 +++++++++++++++++++++--- > 2 files changed, 25 insertions(+), 3 deletions(-) > create mode 100644 meta/recipes-support/icu/icu/filter.json > > diff --git a/meta/recipes-support/icu/icu/filter.json > b/meta/recipes-support/icu/icu/filter.json > new file mode 100644 > index 0000000000..2c63c08510 > --- /dev/null > +++ b/meta/recipes-support/icu/icu/filter.json > @@ -0,0 +1,2 @@ > +{ > +} > diff --git a/meta/recipes-support/icu/icu_66.1.bb > b/meta/recipes-support/icu/icu_66.1.bb > index 5018464c14..736bec4605 100644 > --- a/meta/recipes-support/icu/icu_66.1.bb > +++ b/meta/recipes-support/icu/icu_66.1.bb > @@ -18,7 +18,10 @@ ARM_INSTRUCTION_SET_armv4 = "arm" > ARM_INSTRUCTION_SET_armv5 = "arm" > > BASE_SRC_URI = > "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz" > -SRC_URI = "${BASE_SRC_URI} \ > +DATA_SRC_URI = > "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip" > +SRC_URI = "${BASE_SRC_URI};name=code \ > + ${DATA_SRC_URI};name=data \ > + file://filter.json \ > file://icu-pkgdata-large-cmd.patch \ > file://fix-install-manx.patch \ > file://0001-Fix-big-endian-build.patch \ > @@ -28,8 +31,25 @@ SRC_URI = "${BASE_SRC_URI} \ > SRC_URI_append_class-target = "\ > file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \ > " > -SRC_URI[md5sum] = "b33dc6766711517c98d318447e5110f8" > -SRC_URI[sha256sum] = > "52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e" > +SRC_URI[code.sha256sum] = > "52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e" > +SRC_URI[data.sha256sum] = > "8be647f738891d2beb79d48f99077b3499948430eae6f1be112553b15ab0243e" > > UPSTREAM_CHECK_REGEX = "icu4c-(?P<pver>\d+(_\d+)+)-src" > UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases" > + > +do_make_icudata_class-target () { > + rm -rf ${S}/data > + cp -a ${WORKDIR}/data ${S} > + cd ${S} > + unset AR CC CPP CXX RANLIB CFLAGS CPPFLAGS CXXFLAGS LDFLAGS > + ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \ > + ./runConfigureICU Linux --with-data-packaging=archive > + oe_runmake ${PARALLEL_MAKE} > + install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat > ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat > +} > + > +do_make_icudata() { > + : > +} > + > +addtask make_icudata before do_configure after do_patch > -- > 2.26.0 >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group.
View/Reply Online (#137019): https://lists.openembedded.org/g/openembedded-core/message/137019 Mute This Topic: https://lists.openembedded.org/mt/72774404/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
