mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 21:32:12 +02:00
icu: merge .inc into main recipe
Both parts are rather convoluted, so it is better to have them in a single file. (From OE-Core rev: e8faa3416bc85dab7e7e638448dcb11ff88354a3) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
132952c59c
commit
c1ded5d898
@@ -1,84 +0,0 @@
|
||||
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 = ""
|
||||
|
||||
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"
|
||||
@@ -1,4 +1,87 @@
|
||||
require icu.inc
|
||||
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 = ""
|
||||
|
||||
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"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://../LICENSE;md5=a3808a5b70071b07f87ff2205e4d75a0"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user