mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 08:29:42 +01:00
meson: Backport patches to support dependencies on header-only Boost libs
With Boost 1.89.0, the Boost.System library was made header-only. Since this is a frequent library to have as dependency in meson.build files, this resulted in build failures. Backport two patches so that Boost dependencies on header-only libraries work as expected. (From OE-Core rev: 0cda83cf02169da37e196cb6827177192c5c298c) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
c03aa1cdfd
commit
f86653b666
@@ -0,0 +1,58 @@
|
||||
From f16897135c394d36656da0078613864076300e07 Mon Sep 17 00:00:00 2001
|
||||
From: Jussi Pakkanen <jussi.pakkanen@mailbox.org>
|
||||
Date: Fri, 29 Aug 2025 14:57:06 +0300
|
||||
Subject: [PATCH] Check for header only Boost libraries.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/mesonbuild/meson/commit/6a9a81619c139d0f6ae3d265f7366e61615d92a1]
|
||||
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
|
||||
---
|
||||
mesonbuild/dependencies/boost.py | 22 ++++++++++++++++++++--
|
||||
1 file changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
|
||||
index 662f985..e153e8f 100644
|
||||
--- a/mesonbuild/dependencies/boost.py
|
||||
+++ b/mesonbuild/dependencies/boost.py
|
||||
@@ -452,6 +452,10 @@ class BoostDependency(SystemDependency):
|
||||
break
|
||||
libs = sorted(set(libs))
|
||||
|
||||
+ any_libs_found = len(libs) > 0
|
||||
+ if not any_libs_found:
|
||||
+ return False
|
||||
+
|
||||
modules = ['boost_' + x for x in self.modules]
|
||||
for inc in inc_dirs:
|
||||
mlog.debug(f' - found boost {inc.version} include dir: {inc.path}')
|
||||
@@ -462,7 +466,7 @@ class BoostDependency(SystemDependency):
|
||||
mlog.debug(f' - {j}')
|
||||
|
||||
# 3. Select the libraries matching the requested modules
|
||||
- not_found: T.List[str] = []
|
||||
+ not_found_as_libs: T.List[str] = []
|
||||
selected_modules: T.List[BoostLibraryFile] = []
|
||||
for mod in modules:
|
||||
found = False
|
||||
@@ -472,7 +476,21 @@ class BoostDependency(SystemDependency):
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
- not_found += [mod]
|
||||
+ not_found_as_libs += [mod]
|
||||
+
|
||||
+ # If a lib is not found, but an include directory exists,
|
||||
+ # assume it is a header only module.
|
||||
+ not_found: T.List[str] = []
|
||||
+ for boost_modulename in not_found_as_libs:
|
||||
+ assert boost_modulename.startswith('boost_')
|
||||
+ include_subdir = boost_modulename.replace('boost_', 'boost/', 1)
|
||||
+ headerdir_found = False
|
||||
+ for inc_dir in inc_dirs:
|
||||
+ if (inc_dir.path / include_subdir).is_dir():
|
||||
+ headerdir_found = True
|
||||
+ break
|
||||
+ if not headerdir_found:
|
||||
+ not_found.append(boost_modulename)
|
||||
|
||||
# log the result
|
||||
mlog.debug(' - found:')
|
||||
@@ -0,0 +1,34 @@
|
||||
From d0644d543f4df39cf2ba14337000ee019cb20b6d Mon Sep 17 00:00:00 2001
|
||||
From: Jussi Pakkanen <jussi.pakkanen@mailbox.org>
|
||||
Date: Fri, 29 Aug 2025 22:51:48 +0300
|
||||
Subject: [PATCH] Boost python must have a library component.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/mesonbuild/meson/commit/80917ca8c1a5af499cc6e004ad5d5a050da9045e]
|
||||
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
|
||||
---
|
||||
mesonbuild/dependencies/boost.py | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
|
||||
index e153e8f..fdb35d4 100644
|
||||
--- a/mesonbuild/dependencies/boost.py
|
||||
+++ b/mesonbuild/dependencies/boost.py
|
||||
@@ -440,6 +440,8 @@ class BoostDependency(SystemDependency):
|
||||
mlog.debug(' - potential library dirs: {}'.format([x.as_posix() for x in lib_dirs]))
|
||||
mlog.debug(' - potential include dirs: {}'.format([x.path.as_posix() for x in inc_dirs]))
|
||||
|
||||
+ must_have_library = ['boost_python']
|
||||
+
|
||||
# 2. Find all boost libraries
|
||||
libs: T.List[BoostLibraryFile] = []
|
||||
for i in lib_dirs:
|
||||
@@ -483,6 +485,9 @@ class BoostDependency(SystemDependency):
|
||||
not_found: T.List[str] = []
|
||||
for boost_modulename in not_found_as_libs:
|
||||
assert boost_modulename.startswith('boost_')
|
||||
+ if boost_modulename in must_have_library:
|
||||
+ not_found.append(boost_modulename)
|
||||
+ continue
|
||||
include_subdir = boost_modulename.replace('boost_', 'boost/', 1)
|
||||
headerdir_found = False
|
||||
for inc_dir in inc_dirs:
|
||||
@@ -14,6 +14,8 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/meson-${PV}.tar.gz \
|
||||
file://0001-python-module-do-not-manipulate-the-environment-when.patch \
|
||||
file://0001-Make-CPU-family-warnings-fatal.patch \
|
||||
file://0002-Support-building-allarch-recipes-again.patch \
|
||||
file://0001-Check-for-header-only-Boost-libraries.patch \
|
||||
file://0002-Boost-python-must-have-a-library-component.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "cd27277649b5ed50d19875031de516e270b22e890d9db65ed9af57d18ebc498d"
|
||||
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)$"
|
||||
|
||||
Reference in New Issue
Block a user