Boost logo

Boost :

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


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