Boost logo

Boost :

Subject: Re: [boost] cmake target and binary name mangling
From: Peter Dimov (lists_at_[hidden])
Date: 2017-07-24 16:25:01


paul wrote:

> Yea, I dont think we should mangle the logical target name at all. The
> user should be able to write `target_link_libraries(lib boost::foo)` and
> that should work for either static, shared, or header-only.

As we already discussed, sl/dl/hl have the problem that when a
non-header-only library links to a header-only one which in turn links to a
non-header-only one, the sl/dl of the first one should propagate to the
third, which is problematic if the second has to be -hl.

The way this works in Boost.Build is that the user indeed writes the
equivalent of the above, and then the link=static property is propagated to
the dependencies.

If there's a library that has an optional header-only mode, this is not
encoded as link=header, but as define=BOOST_BAR_HEADER_ONLY.

That is, when you have foo depending on bar depending on baz, the
link=static;define=BOOST_BAR_HEADER_ONLY property set is propagated from foo
to bar to baz and everything works more or less as expected.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk