Boost logo

Boost-Build :

Subject: Re: [Boost-build] <implicit-dependency> not working on Windows
From: Ian Emmons (iemmons_at_[hidden])
Date: 2009-01-05 12:39:25


Steven,

Thanks for this fix -- it does the trick. For now I'm happy to
manually patch the version of boost.build that I'm using, but I'm
curious when I should expect to see this fix released. I noted your
conversation with Volodya about committing the fix on 12/27, but when
I downloaded the nightly build from [1] today (1/5), the fix was not
present.

Thanks,

Ian

[1] http://www.boost.org/doc/tools/build/index.html

On Dec 24, 2008, at 4:58 PM, Steven Watanabe wrote:

> AMDG
>
> Ian Emmons wrote:
>> I have a jam file that works on Macintosh, and I'm now porting it
>> to Windows. This jam file generates some header files that are
>> subsequently used in the compilation of a lib target. The relevant
>> excerpt of my jam file is as follows:
>> <snip>
>> The problem I'm running into is that when bjam builds the lib
>> target, it does not invoke the four targets that generate the
>> header files first, in spite of the <implicit-dependency>
>> declarations. However, if I explicitly invoke bjam on those
>> targets first, bjam correctly builds them and a subsequent
>> invocation of bjam on the lib target will succeed.
>>
>> Any idea why the <implicit-dependency> declarations on the lib
>> target aren't working?
>
> It's a forward slashes vs. backslashes problem.
> Patch against the trunk attached.
>
> In Christ,
> Steven Watanabe
>
> Index: tools/build/v2/tools/builtin.jam
> ===================================================================
> --- tools/build/v2/tools/builtin.jam (revision 50385)
> +++ tools/build/v2/tools/builtin.jam (working copy)
> @@ -15,11 +15,13 @@
> import generators ;
> import numbers ;
> import os ;
> +import path ;
> import print ;
> import project ;
> import property ;
> import regex ;
> import scanner ;
> +import sequence ;
> import stage ;
> import symlink ;
> import toolset ;
> @@ -441,7 +443,9 @@
> rule process ( target : matches * : binding )
> {
> local angle = [ regex.transform $(matches) : "<(.*)>" ] ;
> + angle = [ sequence.transform path.native : $(angle) ] ;
> local quoted = [ regex.transform $(matches) : "\"(.*)\"" ] ;
> + quoted = [ sequence.transform path.native : $(quoted) ] ;
>
> # CONSIDER: the new scoping rule seem to defeat "on target"
> variables.
> local g = [ on $(target) return $(HDRGRIST) ] ;
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build


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