Skip to content

Version 1.9.1 breaks BOOST library modules #15154

@bredelings

Description

@bredelings

Starting with version 1.9.1, meson successfully "finds" BOOST on Debian even when the libraries specified in modules: are not installed. The result is that the compilation proceeds, but then fails at link time.

I would expect a message like the following from 1.9.0:

Run-time dependency Boost (found: json | missing: chrono, program_options, random) found: NO (tried system)

Instead I see:

Run-time dependency Boost (found: json) found: YES 1.88.0 (/usr)

This change seems to be the result of patch Check for header only Boost libraries. This patch seems to record components as present if their header files are present, without testing for whether their libraries are present.
However, this change effectively redefines what it means to be a boost "module". In 1.9.0 and prior, meson only allowed modules to be specified if there was a library to link to, and it would fail at configure time if these libraries were not installed.

I see that there is a follow-up patch that adds:

        must_have_library = ['boost_python']

Does this really work? If so, it seems like must_have_library would need to list all the boost components with libraries.

Maybe this change should be reverted for 1.9.2, and could then be explored more carefully for 1.10?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions