Boost logo

Boost :

Subject: Re: [boost] cmake target and binary name mangling
From: paul (pfultz2_at_[hidden])
Date: 2017-07-24 16:14:16


On Mon, 2017-07-24 at 12:42 +0200, Florent Castelli via Boost wrote:
> On 24/07/2017 01:19, P F via Boost wrote:
> >
> > >
> > > On Jul 23, 2017, at 5:42 AM, Niall Douglas via Boost <boost_at_lists.boost.
> > > org> wrote:
> > >
> > > >
> > > > >
> > > > > 
> > >
> > > The target graphs are REGEXable via the pattern
> > > "<lib>_<hl|sl|dl>-<special>-<binary>" where:
> > >
> > > * hl = header only library
> > > * sl = static library
> > > * dl = shared library
> > There is no need for `hl` as it doesn’t produce binaries.
> "hl" is necessary as a CMake logical target, not at as a build output.
> The problem I have with all those targets, is that they add a lot of 
> overload to IDE solutions who will scan sources for every configuration 
> and for people whose workflow is to build "all" or the whole solution 
> for MSVC, which will build way too many versions.

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. Supporting multiple
variants like shared and static in the same build tree are not supported with
cmake, and creating workarounds to try and support them in the same build tree
just creates problems. To build shared and static requires two build
directories with cmake. 


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