diff mbox series

[141/141] boost-asio: Add recipe

Message ID 20260826095936.307786-1-gustali@axis.com
State New
Headers show
Series None | expand

Commit Message

Gustav Lindberg Aug. 26, 2026, 9:59 a.m. UTC
This is needed to build boost asio as a shared library rather than a
header-only library, which is needed to save memory.

Change-Id: I3ac5ed0ccadae3e9d042b9c4eed3a1ab7220a009
Signed-off-by: Gustav Lindberg <gustali@axis.com>
---
 .../boost-asio/boost-asio_1.90.0.bb           | 33 +++++++++++++++++++
 .../boost-asio/files/boost_asio.cpp           |  1 +
 2 files changed, 34 insertions(+)
 create mode 100644 meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
 create mode 100644 meta/recipes-support/boost-asio/files/boost_asio.cpp

Comments

Peter Kjellerstedt Aug. 26, 2026, 1:36 p.m. UTC | #1
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Gustav Lindberg via lists.openembedded.org
> Sent: den 26 augusti 2026 12:00
> To: openembedded-core@lists.openembedded.org
> Cc: Gustav Lindberg <Gustav.Lindberg@axis.com>
> Subject: [OE-core] [PATCH 141/141] boost-asio: Add recipe
> 
> This is needed to build boost asio as a shared library rather than a
> header-only library, which is needed to save memory.
> 
> Change-Id: I3ac5ed0ccadae3e9d042b9c4eed3a1ab7220a009

Remove the Change-Id.

> Signed-off-by: Gustav Lindberg <gustali@axis.com>
> ---
>  .../boost-asio/boost-asio_1.90.0.bb           | 33 +++++++++++++++++++
>  .../boost-asio/files/boost_asio.cpp           |  1 +
>  2 files changed, 34 insertions(+)
>  create mode 100644 meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
>  create mode 100644 meta/recipes-support/boost-asio/files/boost_asio.cpp
> 
> diff --git a/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb b/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
> new file mode 100644
> index 0000000000..ea534ff172
> --- /dev/null
> +++ b/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
> @@ -0,0 +1,33 @@
> +SUMMARY = "Boost.Asio shared library shim"
> +DESCRIPTION = "Builds libboost_asio as a shared library from boost/asio/impl/src.hpp"
> +HOMEPAGE = "https://www.boost.org/doc/libs/1_90_0/doc/html/boost_asio.html"
> +
> +# Reuse Boost source and licensing metadata from openembedded-core.

Since this is aimed for OE-Core, the "from openembedded-core" is redundant 
and can be removed.

> +require recipes-support/boost/boost-${PV}.inc
> +
> +SRC_URI += " file://boost_asio.cpp"
> +
> +DEPENDS = "boost"

Move DEPENDS up to between HOMEPAGE and the require.

> +
> +do_compile() {
> +       ${CXX} ${CPPFLAGS} ${CXXFLAGS} \
> +               -std=c++23 \
> +               -DBOOST_ASIO_DYN_LINK=1 \
> +               -fPIC \
> +               -shared \
> +               -Wl,-soname,libboost_asio.so.1 \
> +               ${UNPACKDIR}/boost_asio.cpp \
> +               ${LDFLAGS} \
> +               -o ${B}/libboost_asio.so.${PV}
> +}
> +
> +do_install() {
> +       install -d ${D}${libdir}
> +       install -m 0755 ${B}/libboost_asio.so.${PV} ${D}${libdir}/
> +       ln -sf libboost_asio.so.${PV} ${D}${libdir}/libboost_asio.so.1
> +       ln -sf libboost_asio.so.1 ${D}${libdir}/libboost_asio.so

This assumes the major of ${PV} is 1 and updating it will be easy to 
miss if the major is ever increased. There is a function that can be 
used to extract part(s) of the version number, e.g.:

MAJOR_VER = "${@oe.utils.trim_version("${PV}", 1)}"

> +}

Use tabs to indent the shell functions above.

> +
> +FILES:${PN} += "${libdir}/libboost_asio.so.*"

This should not be needed.

> +
> +BBCLASSEXTEND = "native"
> diff --git a/meta/recipes-support/boost-asio/files/boost_asio.cpp b/meta/recipes-support/boost-asio/files/boost_asio.cpp
> new file mode 100644
> index 0000000000..bf00c8ff26
> --- /dev/null
> +++ b/meta/recipes-support/boost-asio/files/boost_asio.cpp
> @@ -0,0 +1 @@
> +#include <boost/asio/impl/src.hpp>
> --
> 2.43.0

//Peter
Peter Kjellerstedt Aug. 26, 2026, 1:40 p.m. UTC | #2
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Peter Kjellerstedt via lists.openembedded.org
> Sent: den 26 augusti 2026 15:36
> To: Gustav Lindberg <Gustav.Lindberg@axis.com>; openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 141/141] boost-asio: Add recipe
> 
> > -----Original Message-----
> > From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Gustav Lindberg via lists.openembedded.org
> > Sent: den 26 augusti 2026 12:00
> > To: openembedded-core@lists.openembedded.org
> > Cc: Gustav Lindberg <Gustav.Lindberg@axis.com>
> > Subject: [OE-core] [PATCH 141/141] boost-asio: Add recipe
> >
> > This is needed to build boost asio as a shared library rather than a
> > header-only library, which is needed to save memory.
> >
> > Change-Id: I3ac5ed0ccadae3e9d042b9c4eed3a1ab7220a009
> 
> Remove the Change-Id.
> 
> > Signed-off-by: Gustav Lindberg <gustali@axis.com>
> > ---
> >  .../boost-asio/boost-asio_1.90.0.bb           | 33 +++++++++++++++++++
> >  .../boost-asio/files/boost_asio.cpp           |  1 +

It would probably also make more sense to put the recipe in 
"meta/recipes-support/boost" together with the current boost recipe, 
and put the .cpp file in "meta/recipes-support/boost/boost-asio".

> >  2 files changed, 34 insertions(+)
> >  create mode 100644 meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
> >  create mode 100644 meta/recipes-support/boost-asio/files/boost_asio.cpp
> >
> > diff --git a/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb b/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
> > new file mode 100644
> > index 0000000000..ea534ff172
> > --- /dev/null
> > +++ b/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
> > @@ -0,0 +1,33 @@
> > +SUMMARY = "Boost.Asio shared library shim"
> > +DESCRIPTION = "Builds libboost_asio as a shared library from boost/asio/impl/src.hpp"
> > +HOMEPAGE = "https://www.boost.org/doc/libs/1_90_0/doc/html/boost_asio.html"
> > +
> > +# Reuse Boost source and licensing metadata from openembedded-core.
> 
> Since this is aimed for OE-Core, the "from openembedded-core" is redundant
> and can be removed.
> 
> > +require recipes-support/boost/boost-${PV}.inc
> > +
> > +SRC_URI += " file://boost_asio.cpp"
> > +
> > +DEPENDS = "boost"
> 
> Move DEPENDS up to between HOMEPAGE and the require.
> 
> > +
> > +do_compile() {
> > +       ${CXX} ${CPPFLAGS} ${CXXFLAGS} \
> > +               -std=c++23 \
> > +               -DBOOST_ASIO_DYN_LINK=1 \
> > +               -fPIC \
> > +               -shared \
> > +               -Wl,-soname,libboost_asio.so.1 \
> > +               ${UNPACKDIR}/boost_asio.cpp \
> > +               ${LDFLAGS} \
> > +               -o ${B}/libboost_asio.so.${PV}
> > +}
> > +
> > +do_install() {
> > +       install -d ${D}${libdir}
> > +       install -m 0755 ${B}/libboost_asio.so.${PV} ${D}${libdir}/
> > +       ln -sf libboost_asio.so.${PV} ${D}${libdir}/libboost_asio.so.1
> > +       ln -sf libboost_asio.so.1 ${D}${libdir}/libboost_asio.so
> 
> This assumes the major of ${PV} is 1 and updating it will be easy to
> miss if the major is ever increased. There is a function that can be
> used to extract part(s) of the version number, e.g.:
> 
> MAJOR_VER = "${@oe.utils.trim_version("${PV}", 1)}"
> 
> > +}
> 
> Use tabs to indent the shell functions above.
> 
> > +
> > +FILES:${PN} += "${libdir}/libboost_asio.so.*"
> 
> This should not be needed.
> 
> > +
> > +BBCLASSEXTEND = "native"
> > diff --git a/meta/recipes-support/boost-asio/files/boost_asio.cpp b/meta/recipes-support/boost-asio/files/boost_asio.cpp
> > new file mode 100644
> > index 0000000000..bf00c8ff26
> > --- /dev/null
> > +++ b/meta/recipes-support/boost-asio/files/boost_asio.cpp
> > @@ -0,0 +1 @@
> > +#include <boost/asio/impl/src.hpp>
> > --
> > 2.43.0
> 
> //Peter

//Peter
diff mbox series

Patch

diff --git a/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb b/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
new file mode 100644
index 0000000000..ea534ff172
--- /dev/null
+++ b/meta/recipes-support/boost-asio/boost-asio_1.90.0.bb
@@ -0,0 +1,33 @@ 
+SUMMARY = "Boost.Asio shared library shim"
+DESCRIPTION = "Builds libboost_asio as a shared library from boost/asio/impl/src.hpp"
+HOMEPAGE = "https://www.boost.org/doc/libs/1_90_0/doc/html/boost_asio.html"
+
+# Reuse Boost source and licensing metadata from openembedded-core.
+require recipes-support/boost/boost-${PV}.inc
+
+SRC_URI += " file://boost_asio.cpp"
+
+DEPENDS = "boost"
+
+do_compile() {
+	${CXX} ${CPPFLAGS} ${CXXFLAGS} \
+		-std=c++23 \
+		-DBOOST_ASIO_DYN_LINK=1 \
+		-fPIC \
+		-shared \
+		-Wl,-soname,libboost_asio.so.1 \
+		${UNPACKDIR}/boost_asio.cpp \
+		${LDFLAGS} \
+		-o ${B}/libboost_asio.so.${PV}
+}
+
+do_install() {
+	install -d ${D}${libdir}
+	install -m 0755 ${B}/libboost_asio.so.${PV} ${D}${libdir}/
+	ln -sf libboost_asio.so.${PV} ${D}${libdir}/libboost_asio.so.1
+	ln -sf libboost_asio.so.1 ${D}${libdir}/libboost_asio.so
+}
+
+FILES:${PN} += "${libdir}/libboost_asio.so.*"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/boost-asio/files/boost_asio.cpp b/meta/recipes-support/boost-asio/files/boost_asio.cpp
new file mode 100644
index 0000000000..bf00c8ff26
--- /dev/null
+++ b/meta/recipes-support/boost-asio/files/boost_asio.cpp
@@ -0,0 +1 @@ 
+#include <boost/asio/impl/src.hpp>