[OE-core] [PATCH 2/2 v2] boost: add support for additional boost libs

Huang, Jie (Jackie) Jackie.Huang at windriver.com
Tue Sep 27 02:26:05 UTC 2016



> -----Original Message-----
> From: André Draszik [mailto:git at andred.net]
> Sent: Monday, September 26, 2016 4:54 PM
> To: Huang, Jie (Jackie); openembedded-core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 2/2 v2] boost: add support for additional boost libs
> 
> On Mo, 2016-09-26 at 15:56 +0800, jackie.huang at windriver.com wrote:
> > From: Jackie Huang <jackie.huang at windriver.com>
> >
> > * Added libs:
> >   - container
> >   - context
> >   - coroutine
> >   - exception
> >   - graph_parallel
> >   - locale
> >   - math
> >   - mpi
> >   - wave
> >
> > * Add PACKAGECONFIG to add proper dependencies for:
> >   graph_parallel, locale, and mpi.
> >
> > * boost-mpi depends on mpich which is in meta-oe,
> >   and boost-graph_parallel depends on boost-mpi,
> >   so they are disabled by default, but can be enabled
> >   in a distro that needs them.
> >
> > * context and coroutine are added only for x86 and powerpc.
> >
> > Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> > ---
> >  meta/recipes-support/boost/boost.inc | 33 ++++++++++++++++++++++++++++++-
> > --
> >  1 file changed, 30 insertions(+), 3 deletions(-)
> >
> > diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-
> > support/boost/boost.inc
> > index 5696b6a..7637a4e 100644
> > --- a/meta/recipes-support/boost/boost.inc
> > +++ b/meta/recipes-support/boost/boost.inc
> > @@ -8,11 +8,14 @@ ARM_INSTRUCTION_SET_armv5 = "arm"
> >  BOOST_LIBS = "\
> >  	atomic \
> >  	chrono \
> > +	container \
> >  	date_time \
> > +	exception \
> >  	filesystem \
> >  	graph \
> >  	iostreams \
> >  	log \
> > +	math \
> >  	program_options \
> >  	random \
> >  	regex \
> > @@ -22,12 +25,28 @@ BOOST_LIBS = "\
> >  	timer \
> >  	test \
> >  	thread \
> > +	wave \
> >  	"
> >
> > -# optional boost-python library
> > -PACKAGECONFIG ??= ""
> > +# only supported by x86 and powerpc
> > +BOOST_LIBS_append_x86 = " context coroutine"
> > +BOOST_LIBS_append_x86-64 = " context coroutine"
> > +BOOST_LIBS_append_powerpc = " context coroutine"
> > +
> > +# optional libraries
> > +PACKAGECONFIG ??= "locale"
> > +PACKAGECONFIG[locale] = ",,icu"
> > +PACKAGECONFIG[graph_parallel] = ",,,boost-mpi mpich"
> > +PACKAGECONFIG[mpi] = ",,mpich"
> >  PACKAGECONFIG[python] = ",,python python3"
> > -BOOST_LIBS += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python
> > python3', '', d)}"
> > +
> > +BOOST_LIBS += "\
> > +    ${@bb.utils.contains('PACKAGECONFIG', 'locale', 'locale', '', d)} \
> > +    ${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel',
> > 'graph_parallel mpi', \
> > +                         bb.utils.contains('PACKAGECONFIG', 'mpi', 'mpi',
> > '', d), d)} \
> > +    ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python python3', '',
> > d)} \
> > +"
> 
> Rather than having two ways to define what packages to build, PACKAGECONFIG
> and BOOST_LIBS, where each of them only supports a different subset of

I'm not a fan of this way, I just keep using the way it was.

> boost's libraries, can we just have one, PACKAGECONFIG, and have it support
> all of the potential libraries?

Yes, I think it's possible, but it will most likely end up with many empty
PACKAGECONFIG definitions like:
PACKAGECONFIG[atomic] = ",,,"
PACKAGECONFIG[chrono] = ",,,"
PACKAGECONFIG[container] = ",,,"
PACKAGECONFIG[date_time] = ",,,"
PACKAGECONFIG[exception] = ",,,"

If you think it's a better way and no other objection, I think I will do that in a
separate commit as follow-up.

Thanks,
Jackie

> 
> 
> Cheers,
> Andre'
> 
> 
> > +
> >  inherit python-dir
> >  PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}"
> >
> > @@ -54,6 +73,10 @@ python __anonymous () {
> >  }
> >
> >  # Override the contents of specific packages
> > +FILES_${PN}-graph = "${libdir}/libboost_graph.so.*"
> > +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.* \
> >  	${libdir}/libboost_wserialization*.so.*"
> >  FILES_boost-test = "${libdir}/libboost_prg_exec_monitor*.so.* \
> > @@ -159,6 +182,10 @@ do_configure() {
> >  	echo "using python : ${PYTHON_BASEVERSION} : :
> > ${STAGING_INCDIR}/python${PYTHON_BASEVERSION} ;" >> ${WORKDIR}/user-
> > config.jam
> >  	echo "using python : 3.5 : : ${STAGING_INCDIR}/python3.5m ;" >>
> > ${WORKDIR}/user-config.jam
> >
> > +	if ${@bb.utils.contains('BOOST_LIBS', 'mpi', 'true', 'false',
> > d)}; then
> > +		echo "using mpi : : <find-shared-library>mpi ;" >>
> > ${WORKDIR}/user-config.jam
> > +	fi
> > +
> >  	CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-
> > bjam=bjam --with-toolset=gcc --with-python-root=${PYTHON_ROOT}
> >  	sed -i '/^using python/d' ${S}/project-config.jam
> >  }
> > --
> > 2.8.3
> >


More information about the Openembedded-core mailing list