Subject: Re: [boost] cmake target and binary name mangling
From: Peter Dimov (lists_at_[hidden])
Date: 2017-07-25 12:38:07
Niall Douglas wrote:
> > 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.
> As we also previously discussed, the easy way out of that is to enforce
> all header, all static or all shared.
But this is not possible in general as not all libraries support
The preference for header-only, if supported, is orthogonal to the
preference for static or shared. In sl/dl terms, it's not sl/dl/hl, it's
sl/dl/slh/dlh, so that when you propagate downstream through a header-only
library, the s/d isn't lost.
In Boost.Build terms, these would be two separate features,
link=static|shared and prefer-header-only=on. Libraries that don't have a
header-only mode would just ignore the latter.