Check for header only Boost libraries.
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py index 662f985..82985c7 100644 --- a/mesonbuild/dependencies/boost.py +++ b/mesonbuild/dependencies/boost.py
@@ -462,7 +462,7 @@ 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 +472,21 @@ 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:')