|
Boost : |
From: ÐмиÑÑий ÐÑÑ
ипов (grisumbras_at_[hidden])
Date: 2021-11-03 10:24:38
РпиÑÑме Ð¾Ñ Ð²ÑоÑник, 2 ноÑбÑÑ 2021 г. 22:32:37 MSK полÑзоваÑÐµÐ»Ñ Niall Douglas
via Boost напиÑал:
> The correct solution here is that b2 doesn't misrepresent
> header only libraries to cmake as not being INTERFACE libraries.
I've skimmed through boost-install code and I think this is doable. There's
already a hard-coded list of b2 targets that should map to INTERFACE CMake
targets, it should be possible to extend the logic to any alias target.
One thing to note is that alias targets aren't visible on the level CMake
config module generation (inside boost-install) currently operates. This will
have the effect that if header-only boost_foo depends on header-only boost_bar
which in turn depends on compiled target boost_baz, CMake target Boost::foo
will depend on Boost::baz, not on Boost::bar.
Finally, there's a question of whether this should be done at all. CMake's
FindBoost does not declare any targets for header-only libraries. Conan-
generated CMake configs don't do that either. If a Boost user adds a dependency
to Boost::process in his CML, he is now required to use Boost-generated CMake
configs. This is OK when the build environment is controlled (e.g. closed
source), but probably is not OK for open source libraries that depend on
Boost.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk