Boost.Locale currently always depends on ICU when the locale library is enabled. That makes ICU a mandatory dependency for users that need boost-locale but do not need the ICU backend.
Add a separate locale-icu PACKAGECONFIG option and keep it enabled by default so existing builds retain the same feature set and runtime linkage. When locale-icu is removed, pass boost.locale.icu=off to Boost.Build so boost-locale can still be built using the non-ICU backends without pulling ICU into the dependency graph. Pass boost.locale.icu=on explicitly when the option is enabled instead of relying on Boost's default probing behavior. Keep the existing --disable-icu argument, which controls Boost.Regex ICU support, separate from the Boost.Locale backend selection. Tie the ICU dependency to the locale and locale-icu options so configurations that disable either locale or the ICU backend do not keep an unused ICU build dependency. This gives distros and SDK builds a smaller dependency closure while preserving the current default behavior. Signed-off-by: Shinu Chandran <[email protected]> --- Changes in v2: - Rename the PACKAGECONFIG option from icu to locale-icu to clarify that it controls the Boost.Locale ICU backend only. - Pass boost.locale.icu=on explicitly when the backend is enabled. - Keep --disable-icu unchanged because it controls Boost.Regex ICU support. meta/recipes-support/boost/boost.inc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc index 7a343e54f6..7033da181b 100644 --- a/meta/recipes-support/boost/boost.inc +++ b/meta/recipes-support/boost/boost.inc @@ -49,8 +49,10 @@ BOOST_LIBS = "\ " # optional libraries -PACKAGECONFIG ??= "locale python" -PACKAGECONFIG[locale] = ",,icu" +PACKAGECONFIG ??= "locale python locale-icu" +BOOST_LOCALE_ICU_DEP = "${@bb.utils.contains('PACKAGECONFIG', 'locale', 'icu', '', d)}" +PACKAGECONFIG[locale] = ",," +PACKAGECONFIG[locale-icu] = ",,${BOOST_LOCALE_ICU_DEP}" PACKAGECONFIG[graph_parallel] = ",,,boost-mpi mpich" PACKAGECONFIG[mpi] = ",,mpich" PACKAGECONFIG[python] = ",,python3" @@ -145,10 +147,13 @@ BJAM_TOOLS = "--ignore-site-config \ # use PARALLEL_MAKE to speed up the build BOOST_PARALLEL_MAKE = "${@oe.utils.parallel_make_argument(d, '-j%d')}" +# --disable-icu below controls Boost.Regex ICU support. Boost.Locale ICU is +# handled independently with boost.locale.icu. +BOOST_LOCALE_ICU_OPTS = "${@bb.utils.contains('PACKAGECONFIG', 'locale locale-icu', 'boost.locale.icu=on -sICU_PATH=${STAGING_EXECPREFIXDIR}', 'boost.locale.icu=off', d)}" BJAM_OPTS = '${BOOST_PARALLEL_MAKE} -d+2 -q \ ${BJAM_TOOLS} \ -sBOOST_BUILD_USER_CONFIG=${WORKDIR}/user-config.jam \ - -sICU_PATH=${STAGING_EXECPREFIXDIR} \ + ${BOOST_LOCALE_ICU_OPTS} \ --build-dir=${B} \ --disable-icu \ ${BJAM_EXTRA}' -- 2.35.6
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#242235): https://lists.openembedded.org/g/openembedded-core/message/242235 Mute This Topic: https://lists.openembedded.org/mt/120499214/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
