Boost logo

Boost :

Subject: [boost] Boost Build and Test
From: Robert Ramey (ramey_at_[hidden])
Date: 2016-05-17 12:13:13


I started a new thread to accommodate the widening discussion on CMake.

Build and Test systems:

I've always been a big complainer about Boost Build. Now I'm a big
complainer about CMake as well. Just so you know.

I always found it weird that the buiding of libraries jam file was
stashed in it's own directory - build while jam files for other
components like test and building docs was found inside their respective
directories. I also added to the serialization library some other jam
files in subdirectories example and in performance. So to me by far the
most natural place to find the library jam file would be in the
directory we've agreed to name src. I never made any issue of this as
my whole progress through life is about moving on to get my own projects
done.

Largely motivated by the desire to do cutting edge C++ development I
replaced my old windows system with a mac mini. Soon I wanted to build
and test my projects in XCode IDE. I like to use an IDE, but setting it
and maintaining it for a project like the serialization library is an
incredible amount of work. So I resolved to setup CMake to do the job.
I had exposure to CMake before and found it no better than all the other
build systems. But it needed to do what I wanted it to do - create the
IDE project and it was very popular. So I managed to make it work in
this context and the result has been quite satisfactory. But making it
run all the tests I want to run - different compilers, libraries, etc.
etc. integrating with my own library_status dashboard builder looked
like a serious pain and I already had an elaborate Jamfile set for doing
all of that. So upshot is I use them both for different purposes. I
don't see anything wrong with that. In order not to upset the
established structure I put my CMakeLists.txt file inside it's own
directory.

If it was totally up to me, what I'd like to see is:

a) jam files in the build directory moved to src
b) thereby acknowledging the practice of having jam files in the same
directories which contain the build sources.
c) which is pretty much the same as the CMake approach.
c) official tolerance for including other build systems at the same
level such as CMakeLists.txt and maybe MS projects and solutions.
d) official tolerence for including a top level CMakeLists.txt.
Personally I don't think this is necessary or even a good idea - but I
want to leave that as a separate discussion.

Robert Ramey


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