$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Nicola Musatti (Nicola.Musatti_at_[hidden])
Date: 2007-01-26 05:07:16
Roland Schwarz <roland.schwarz <at> chello.at> writes:
>
> Nicola Musatti wrote:
> > 1) Get hold of the most recent Spirit 1.6 release and unpack it
> > somewhere
>
> Ok, this should be simple enough.
>
> > 2) Apply a patch that changes all '#include "..."' directives
> > into '#include <...>'
>
> Hmm, why? What would this change?
I was imprecise: the Borland compiler requires all the Spirit include directives
to use angle brackets *and* to be relative to the Boost root directory. This
compiler has a weird include search scheme when double quotes are involved that
results in Spirit files to be taken partly from the external 1.6 location and
partly from the main Boost tree.
> > 3) Setup your configuration to recognize the alternative Spirit
> > I'd like to try and combine 1 & 2 by issuing a new Spirit 1.6 minor release
> > containing the patch. I also hope to convince Robert Ramey to let me patch
> > the Serialization Jamfile.v2 file so that the location of Spirit 1.6 may be
> > specified by means of an environment variable, as it was under BBv1 .
>
> As I see it this should be a requirement for bbv2. However to me it is
> not obvious how to port this code to bbv2.
I have a working implementation, I'll post it tonight (GMT+1) from home, as I
cannot post attachments from Gmane's web interface. The gist of it is the
following function:
rule include-spirit ( properties * )
{
local result ;
local SPIRIT_ROOT = [ modules.peek : SPIRIT_ROOT ] ;
for tset in borland vc iw
{
if ( <toolset>$(tset) in $(properties) )
{
if ( $(SPIRIT_ROOT) )
{
result = <cxxflags>-I$(SPIRIT_ROOT) ;
}
else
{
echo *** spirit 1.6x required to build library with this compiler *** ;
result = <build>no ;
}
}
}
return $(result) ;
}
> > Alternatively it is possible to modify the Borland 5.8.2 entry in
> > user-config.jam and add the appropriate option there.
>
> Hmm, can you be explicit please?
You can add <cxxflags>-I/path/to/Spirit16 to the Borland entry. I don't like
this solution because it causes Spirit 1.6 to be used for all the tests that
involve Spirit.
Cheers,
Nicola Musatti