-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
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?