Subject: Re: [boost] Cmake
From: Edward Diener (eldiener_at_[hidden])
Date: 2017-06-24 20:18:29
On 6/24/2017 2:53 PM, Robert Ramey via Boost wrote:
> On 6/24/17 11:42 AM, Edward Diener via Boost wrote:
>> On 6/24/2017 1:05 PM, Peter Dimov via Boost wrote:
>>> P F wrote:
>>>> The library for Boost.System is just:
>>>> VERSION 1.64
>>> This certainly looks cleaner. It needs to distinguish between public
>>> and private dependencies but that's easy to fix. And of course
>>> there's the question who will maintain the version and the dependency
>> Shouldn't this be generated on the fly ? The sources are all files in
>> the library's 'src' subdirectory and the dependencies come from your
>> own boostdep.
> I don't see that this is possible. Consider and example:
> a) I have and application A which uses the boost::date_time library.
> b) But it doesn't serialize dates/times So it doesn't include the
> date_time/serialization header
> c) So application is not dependent upon the serialization library
> d) And it doesn't have to include build / maintenance overhead that
> including the serialization library would entail.
> a) I make application B which used the boost::date_time library
> b) Part of the app also serializes date_time data
> c) So it includes date_time/serialization header
> d) And must be linked with the serialization compiled libraries.
> My point is that one cannot support the notion of dependencies between
> libraries outside of the context of a particular application.
> So dependencies will either have to specified/maintained by hand or one
> will need a tool which does something like
> dependencies A.cpp -> dependent libraries for application A
> dependencies B.cpp -> dependent libraries for application B
How is a library supposed to know what your application needs ? That is
not its responsibility. Doesn't CMake allow manipulation of what an
application needs at some higher level ? When I have used CMake to build
LLVM/Clang it certainly allowed me to choose what I wanted for my
particular build even though LLVM/CLang provide a whole slew of
CMakeLists.txt files. If we cannot setup CMake pretty easily for Boost
libraries so that the end-user can manipulate builds and tests for his
needs our CMake setup will be worthless.
> Robert Ramey