Boost logo

Boost-Build :

Subject: Re: [Boost-build] Property propagation
From: Phillip Seaver (phil_at_[hidden])
Date: 2009-01-08 11:26:31


Brian Ravnsgaard Riis wrote:
> Ok, the last thread seems to have died. Maybe I wasn't being explicit
> enough about the follow-up question, so here goes.
>
> The question is basically about property propagation, I guess. I've been
> toying a bit with Rene's wxwidgets.jam. Several things in the setup
> process are dependent on the properties of the project being built, such
> as <architecture> or <target-os>/<host-os>. These properties are *not*
> propagated to the relevant rules in wxwidgets.jam.

I just used --debug-building on one of my jamfiles that has a "make"
rule in it, and <target-os> doesn't show up for the make rule, but it
does for cpp files. That might be a bug, but I'm not one of the
developers, so I could be wrong.

<architecture> is an optional feature, so I believe it defaults to not
being present. I guess it's along the lines of <target-os> in that it
tells boost.build that you want to specify the architecture rather than
using the default for the compiler.

> Of particular interest is the setup_h rule, which creates wxWidgets'
> configuration header. It needs to add a "#define WORDS_BIGENDIAN 1" if
> we are on a big-endian architecture, but $(properties) does not contain

As an aside, this will cause problems if you ever need to build a
universal binary (Intel and Power PC) for Mac OS X, since that needs to
be determined at compile-time, depending on which compile you're doing.
We had the endian defines in the jam files for several libraries, and I
had to move them into #if statements in headers. I "borrowed" code from
boost/detail/endian.hpp to do that.

Phillip


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