Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-05-24 07:23:20


On Monday 23 May 2005 21:56, David Abrahams wrote:
> David Abrahams <dave_at_[hidden]> writes:
> > Rene Rivera <grafik.list_at_[hidden]> writes:
> >> David Abrahams wrote:
> >>> We really need to settle on some new approach.
> >>> Thoughts?
> >>
> >> Like I said in:
> >>
> >> http://article.gmane.org/gmane.comp.lib.boost.build/8721
> >>
> >>> We could have something like:
> >>>
> >>> using gcc : gcc-3.4-arm :
> >>> CC=/x/y/bin/arm-gcc CPP=/x/y/bin/arm-gcc
> >>> CXX=/x/y/bin/arm-g++ CXXCPP=wave
> >>> ROOT=/x/y ;
> >
> > Agreed. No need for the all-caps names, IMO, though. They give the
> > misleading impression that environment variables will be set.
>
> FWIW, here's what I ended up having to do to get como working:
>
> using como : 4.3.3 :
> "call \"c:/program files/microsoft visual studio .net
> 2003/vc7/Bin/vcvars32\" > nul set COMO_MS_INCLUDE=\"c:/program
> files/microsoft visual studio .net 2003/vc7/include\" set
> LIB=c:/tools/como433/libcomo;%LIB%
> set PATH=c:/tools/como433/bin;%PATH%
> set COMO_BASE=c:/tools/como433
> "como.exe
> ;
>
> Ick! And I still get:

Ick indeed. Ideally, the como toolset should compute all of the above command
from c:/tools/como433/bin/como.exe and a separately passed path to vc7.

Now to your question about better way.

I believe that in a large number of cases, the full path to compiler is
enough to set up everything.

Yes, there are cases when it does not work.

1. In your case, V2 cannot really verify that the above command will work,
and so issues pointless (in your case) warning.

2. If I want to build with visual C++ under Linux (using windows emulator),
I don't want calling any setup scripts, I just want to call a single command
that I provide.

We can handle this by using several modes of initialization:

1. If 'simple' mode, only compiler command is specified, toolset tries to
figure out the rest.

2. In 'advanced' mode, user can specify 'prefix' and 'suffix' commands
that will be invoked before and after compiler. Consider:

using gcc : 4.0 : g++-4.0 : <prefix>distcc ;

How this prefix is combined with prefix added by toolset (again consider
setup script for vc) is not yet clear.

3. In 'expert' mode, user passes the exact command line, which is used
verbatim, and no checking is performed by toolset.

Will that cover all cases?

- Volodya

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build V2: http://boost.org/boost-build2
 

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