Boost logo

Boost-Build :

From: Bill Hoffman (bill.hoffman_at_[hidden])
Date: 2007-10-12 14:54:55


Larry Evans wrote:
> On 10/05/07 16:17, David Abrahams wrote:
> > on Fri Oct 05 2007, Larry Evans <cppljevans-AT-cox-internet.com> wrote:
> >
> >> Dave, because I was having trouble with BB, I tried CMake briefly
> >> around August. It was hard to specify a different compiler, as
> >> described here:
> >>
> >> http://lists.boost.org/Archives/boost/2007/08/126117.php
> >>
> >> I guess this qualifies as "empirical data".
> >
> > Yes, it does, thanks.
> >
> >> After that CMake experience, I went back to BB to see if I could
> >> understand it (in particular the extending) better. I'm still
> >> trying :(.
>
> BTW, I've made some progress in getting BB to work on the problem,
> which was emulating the GMCPPOT (see below).
>
OK, so that was a very long email. :-)

Can we sum it up into the following three issues?

1. Once you configure a binary tree for a build with CMake,
it is not easy to change the compiler.

2. You want to pass flags to the compiler like -E, but cmake does not
allow this.

3. You want some sort of mapping between the CMakeLists.txt input files
and the
generated Makefiles.

To answer those issues:

1. Yes, you can not change the compiler once cmake has run. Typically,
I have
a separate build tree for each compiler that I am using. The model
used by cmake on unix is the familiar configure script interface like this:

mkdir build
cd build
CC=gcc
CXX=g++
cmake ../source/tree

Once CMake is run, the compiler can not easily be changed. It is easier to
remove the entire build tree, and start over. There is a "bug", in that
ccmake
presents the CMAKE_CXX_COMPILER as a variable that can be changed,
when in fact it can not be changed.

2. make source.i will generate preprocessed output for a given compiler.
make help in a directory will show the possible targets to make.

3. You are the first to make this request. For each directory in the
source tree that has a CMakeLists.txt file, a directory in the binary
tree will be created. The lines of the CMakeLists.txt file do
not directly map to any particular line of the Makefile. I something
could be done here, but I am not sure how useful it would be.

-Bill


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk