Boost logo

Boost :

Subject: Re: [boost] [CMake] what to do now?
From: Edward Diener (eldiener_at_[hidden])
Date: 2016-04-14 18:09:42

On 4/14/2016 5:17 PM, Andrey Semashev wrote:
> On 2016-04-14 22:00, Edward Diener wrote:
>> On 4/14/2016 1:37 PM, Rene Rivera wrote:
>>> On Thu, Apr 14, 2016 at 12:33 PM, Louis Dionne <ldionne.2_at_[hidden]>
>>> wrote:
>>>> Don't overthink it. All I'm saying is that the Boost guidelines
>>>> recommend
>>>> that
>>>> CMakeLists.txt should appear in $some_library/build/CMakeLists.txt,
>>>> while I
>>>> argue that current practice is to put it in
>>>> $some_library/CMakeLists.txt.
>>> Just to be clear. It's not a recommendation. It's a requirement.
>> Ideally could not one have a CMakeLists.txt file wherever there is
>> currently a jamfile ? In the library's 'build' directory to build a
>> non-header only library, in the library's 'doc' directory to build the
>> docs, in the library's 'test' directory to run the tests etc.
> Yes, that is possible and what should be done according to the current
> guidelines. It's just not how it's typically done in other projects that
> use cmake.

That appears to be a minus for CMake. The build of a library is in my
mind the summation of the build of its separate parts. Being able to
build each part of a library ( the library itself, documentation, tests,
examples etc etc. ) separately must be more flexible than having to
build every part as a whole. In that respect Boost.Build has got it
right IMO.

>> My personal problem with CMake is, while the language to use it is more
>> understandable for me than 'jam', its doc is just as hard for me to
>> understand as Boost Build if not even harder <g>. Mastering yet another
>> build system which is documented mainly for those who already know what
>> it is about is not my idea of programming fun.
> Unlike Boost.Build, cmake has built in commands 'cmake --help*' which at
> least make it easier to use when you know what you're doing.

Boost Build also has a --help option. I do not think a --help option is
sufficient for explaining how something works. I look at the CMake docs
and there is no introduction, no overview, no attempt to explain how the
different parts of the tool relate to each other. While the docs for the
individual pieces of CMake have good explanations I really have to dig
around to understand what I have and how I might want to use it, and I
just don't have that patience. I hate the attitude of programming
documentation that the reader should work hard to figure out basic
things for himself because the documenter is just too lazy to explain
those things in a reasonable clear way.

Boost list run by bdawes at, gregod at, cpdaniel at, john at