|
Boost : |
Subject: Re: [boost] [EXTERNAL] Request for a "PolicyReview"regarding 'CMakeLists.txt'
From: Peter Dimov (lists_at_[hidden])
Date: 2016-05-20 11:34:32
Paul Fultz II wrote:
> Globbing for âlibs/*/CMakeLists.txt` will only find the top-level cmake
> files.
Yes, at it will miss those that are more than one level deep. Although it
doesn't really matter.
One sensible arrangement will be
$BOOST_ROOT
CMakeLists.txt
status/
CMakeLists.txt
libs/
bind/
test/
CMakeLists.txt
filesystem/
build/
CMakeLists.txt
test/
CMakeLists.txt
hana/
CMakeLists.txt
test/
CMakeLists.txt
hypot/
CMakeLists.txt
build/
CMakeLists.txt
test/
CMakeLists.txt
Here, libs/bind/test/CMakeLists.txt defines the target bind.test,
libs/filesystem/build/CMakeLists.txt defines the target filesystem.build,
and so on. The top level CMakeLists.txt globs recursively for
build/CMakeLists.txt and declares a default target that builds everything.
status/CMakeLists.txt globls recursively for test/CMakeLists.txt and
declares a 'test' or 'check' target that tests everything.
libs/hypot/CMakeLists.txt, which is used when standalone, includes
build/CMakeLists.txt and test/CMakeLists.txt and declares a default target
that depends on hypot.build and a check target that depends on hypot.test.
So, only the libraries that support standalone deployment have a top-level
CMakeLists.txt.
There are probably other ways to do it, but this one seems fairly
straightforward.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk