mirror of
https://git.yoctoproject.org/poky
synced 2026-09-29 07:36:20 +02:00
Fix install files conflicts between multlib packages by inherit multilib_script: | file /usr/bin/cairo-trace conflicts between attempted installs of lib32-libcairo-perf-utils-1.14.12-r0.x86 and libcairo-perf-utils-1.14.12-r0.core2_64 | file /usr/bin/icu-config conflicts between attempted installs of lib32-icu-dev-62.1-r0.x86 and icu-dev-62.1-r0.core2_64 | file /usr/bin/gpgrt-config conflicts between attempted installs of lib32-libgpg-error-dev-1.32-r0.x86 and libgpg-error-dev-1.32-r0.core2_64 (From OE-Core rev: 52f2dd97e9dd20dea0f3cdeb2df490d1a4c646aa) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
92 lines
3.5 KiB
PHP
92 lines
3.5 KiB
PHP
SUMMARY = "International Component for Unicode libraries"
|
|
DESCRIPTION = "The International Component for Unicode (ICU) is a mature, \
|
|
portable set of C/C++ and Java libraries for Unicode support, software \
|
|
internationalization (I18N) and globalization (G11N), giving applications the \
|
|
same results on all platforms."
|
|
HOMEPAGE = "http://site.icu-project.org/"
|
|
|
|
LICENSE = "ICU"
|
|
DEPENDS = "icu-native"
|
|
DEPENDS_class-native = ""
|
|
|
|
CVE_PRODUCT = "international_components_for_unicode"
|
|
|
|
S = "${WORKDIR}/icu/source"
|
|
SPDX_S = "${WORKDIR}/icu"
|
|
STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}"
|
|
|
|
BINCONFIG = "${bindir}/icu-config"
|
|
|
|
ICU_MAJOR_VER = "${@d.getVar('PV').split('.')[0]}"
|
|
|
|
inherit autotools pkgconfig binconfig multilib_script
|
|
|
|
MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/icu-config"
|
|
|
|
# ICU needs the native build directory as an argument to its --with-cross-build option when
|
|
# cross-compiling. Taken the situation that different builds may share a common sstate-cache
|
|
# into consideration, the native build directory needs to be staged.
|
|
EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
|
|
EXTRA_OECONF_class-native = ""
|
|
EXTRA_OECONF_class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
|
|
|
|
EXTRA_OECONF_append_class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}"
|
|
TARGET_CXXFLAGS_append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${PV}\\""', '', d)}"
|
|
|
|
ASNEEDED = ""
|
|
|
|
# strtod_l() is not supported by musl; also xlocale.h is missing
|
|
# It is not possible to disable its use via configure switches or env vars
|
|
# so monkey patching is needed.
|
|
do_configure_prepend_libc-musl () {
|
|
sed -i -e 's,DU_HAVE_STRTOD_L=1,DU_HAVE_STRTOD_L=0,' ${S}/configure.ac
|
|
}
|
|
|
|
do_compile_prepend_class-target () {
|
|
# Make sure certain build host references do not end up being compiled
|
|
# in the image. This only affects libicutu and icu-dbg
|
|
sed \
|
|
-e 's,DU_BUILD=,DU_BUILD_unused=,g' \
|
|
-e '/^CPPFLAGS.*/ s,--sysroot=${STAGING_DIR_TARGET},,g' \
|
|
-i ${B}/tools/toolutil/Makefile
|
|
}
|
|
|
|
PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}"
|
|
do_install_append_class-native() {
|
|
mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config
|
|
cp -r ${B}/config/icucross.mk ${D}/${STAGING_ICU_DIR_NATIVE}/config
|
|
cp -r ${B}/config/icucross.inc ${D}/${STAGING_ICU_DIR_NATIVE}/config
|
|
cp -r ${B}/lib ${D}/${STAGING_ICU_DIR_NATIVE}
|
|
cp -r ${B}/bin ${D}/${STAGING_ICU_DIR_NATIVE}
|
|
cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE}
|
|
}
|
|
|
|
do_install_append_class-target() {
|
|
# The native pkgdata can not generate the correct data file.
|
|
# Use icupkg to re-generate it.
|
|
if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then
|
|
rm -f ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
|
|
icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${PV}/icudt${ICU_MAJOR_VER}b.dat
|
|
fi
|
|
|
|
# Remove build host references...
|
|
sed -i \
|
|
-e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
|
|
-e 's|${DEBUG_PREFIX_MAP}||g' \
|
|
-e 's:${HOSTTOOLS_DIR}/::g' \
|
|
${D}/${bindir}/icu-config ${D}/${libdir}/${BPN}/${PV}/Makefile.inc \
|
|
${D}/${libdir}/${BPN}/${PV}/pkgdata.inc
|
|
}
|
|
|
|
PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio"
|
|
|
|
FILES_${PN}-dev += "${libdir}/${BPN}/"
|
|
|
|
FILES_libicudata = "${libdir}/libicudata.so.*"
|
|
FILES_libicuuc = "${libdir}/libicuuc.so.*"
|
|
FILES_libicui18n = "${libdir}/libicui18n.so.*"
|
|
FILES_libicutu = "${libdir}/libicutu.so.*"
|
|
FILES_libicuio = "${libdir}/libicuio.so.*"
|
|
|
|
BBCLASSEXTEND = "native nativesdk"
|