From: Peter Dimov (pdimov_at_[hidden])
Date: 2021-06-07 01:51:51
Glen Fernandes wrote:
> On Sun, Jun 6, 2021 at 9:12 PM Peter Dimov via Boost
> <boost_at_[hidden]> wrote:
> > Some libraries (I encountered this when porting the tests of Signals2)
> > use Boost.Test in header-only mode, by including
> > <boost/test/included/unit_test.hpp>
> > without linking to anything. This worked in the "legacy" structure
> > where all headers are always available, but doesn't work under CMake
> > where you have to link to header-only libraries in order to get the
> > proper include path.
> > Should we make an attempt to support this use by declaring a special
> > header-only target in Boost.Test (e.g. Boost::included_unit_test), or
> > is that a waste of time? One can as well link to the proper
> > Boost::unit_test_framework (and then even use it header-only, although
> > there's not much point in doing so.)
> > I'm inclined towards "waste of time".
> What is the list of libraries that do this? I'm curious if most of them are
> unmaintained or would otherwise be better served migrating to LWT.
The libraries that use the "included/" versions of the Test libraries are
actually the maintained ones, because the unmaintained ones are still
on the deprecated <boost/test/minimal.hpp>. :-)
The `included` ones are
so this is widely used, and in fairness, it's a legitimate and documented
way to use Boost.Test.
I don't think we need to change anything in the libraries, but I also don't
think we need to duplicate the Boost.Test CMake targets to make them
have header-only versions. Linking to the normal target will also enable
the header-only use to compile.
For completeness, the libraries using the deprecated boost/test/minimal.hpp
These need to migrate to either LWT or the non-deprecated Boost.Test.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk