Boost logo

Boost-Build :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2005-09-29 03:24:13


Reece Dunn wrote:
> Vladimir Prus wrote:
>
>>On Tuesday 27 September 2005 12:08, Reece Dunn wrote:
>>
>>>If msvc fails to compile a source file, the RSP file is not deleted.
>>>Therefore, if you change the Jamfile settings that alters the RSP file
>>>contents, those changes aren't picked up.
>>
>>Well, this is a problem indeed. So far, no good solution exists.
>
> I have done some investigating on this. The problem appears to be in
> common.jam(536): rule response-file
>
> Chaning line 583: "print.output $(rsp)" to
>
> echo response file $(rsp) ;
> print.output "console" ; # $(rsp) ;
>
> gives:
>
> response file
> <p..\..\..\build\tools\music\msvc-7.1\release\user-interface-gui\w
> in32-charset-unicode>main.obj.rsp
>
> -DFOO
> -DNDEBUG
> ...
>
> so it *is* picking up the changes (-DFOO), but these aren't being passed
> on to the file. Therefore, the problem is in the util/print.jam logic.
> (Should the response file set output to overwrite the contents?)

I have done some further investigation and have found that the problem
lies in print.jam:

* if a file does not exist,
print.jam(417): actions quietly text-action
is called and the data in $(text-body) is written to the file.

* if the file exists, the data in $(text-body) is collected and valid,
but text-action isn't called :(.

The solution would be to either:

1. delete the file if it exists in response to
print.jam(347): if $(overwrite)
thus forcing the action to be called.

2. somehow telling jam to force text-action to always be called.

- Reece

 


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