boost: Use PN/BPN for naming of packages

Rework the anon Python so that it doesn't expect to find non-MLPREFIXed FILES
overrides which are then mapped into MLPREFIXed versions, this allows the
apparent hardcoding of boost-{test,serialization} to be written more naturally
(and is significantly less surprising).

With this, and a change to lookup ${BPN} when generating split package names,
generating an explicitly versioned boost package (e.g. "boost-1.82") alongside
the main boost package ("boost") can be done by copying/renaming the older
recipe. This is useful when upstream code hasn't yet been ported to newer
boost and an older version is required.

(From OE-Core rev: b0770990a8b332dd2de802091164c9506882a465)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alex Kiernan 2025-03-02 16:50:55 +00:00 committed by Richard Purdie
parent 79d1fd0881
commit 8401052ffd

View File

@ -43,6 +43,9 @@ BOOST_LIBS = "\
type_erasure \
url \
wave \
${@bb.utils.filter('PACKAGECONFIG', 'locale python', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \
bb.utils.filter('PACKAGECONFIG', 'mpi', d), d)} \
"
# optional libraries
@ -52,12 +55,6 @@ PACKAGECONFIG[graph_parallel] = ",,,boost-mpi mpich"
PACKAGECONFIG[mpi] = ",,mpich"
PACKAGECONFIG[python] = ",,python3"
BOOST_LIBS += "\
${@bb.utils.filter('PACKAGECONFIG', 'locale python', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \
bb.utils.filter('PACKAGECONFIG', 'mpi', d), d)} \
"
inherit python3-dir
PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}"
@ -70,14 +67,12 @@ python __anonymous () {
mlprefix = d.getVar("MLPREFIX")
for lib in d.getVar('BOOST_LIBS').split():
extras.append("--with-%s" % lib)
pkg = "boost-%s" % (lib.replace("_", "-"))
pkg = "%s-%s" % (d.getVar("BPN"), lib.replace("_", "-"))
if "-native" in pn:
pkg = pkg + "-native"
packages.append(mlprefix + pkg)
if not d.getVar("FILES:%s" % pkg):
if not d.getVar("FILES:%s%s" % (mlprefix, pkg)):
d.setVar("FILES:%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib)
else:
d.setVar("FILES:%s%s" % (mlprefix, pkg), d.getVar("FILES:%s" % pkg))
d.setVar("BOOST_PACKAGES", " ".join(packages))
d.setVar("BJAM_EXTRA", " ".join(extras))
@ -87,9 +82,9 @@ python __anonymous () {
FILES:${PN}-graph_parallel = "${libdir}/libboost_graph_parallel.so.*"
FILES:${PN}-locale = "${libdir}/libboost_locale.so.*"
FILES:${PN}-mpi = "${libdir}/mpi.so ${libdir}/libboost_mpi*.so.*"
FILES:boost-serialization = "${libdir}/libboost_serialization*.so.* \
FILES:${PN}-serialization = "${libdir}/libboost_serialization*.so.* \
${libdir}/libboost_wserialization*.so.*"
FILES:boost-test = "${libdir}/libboost_prg_exec_monitor*.so.* \
FILES:${PN}-test = "${libdir}/libboost_prg_exec_monitor*.so.* \
${libdir}/libboost_unit_test_framework*.so.*"
# -dev last to pick up the remaining stuff