Boost logo

Boost-Build :

Subject: Re: [Boost-build] Target is always rebuild when referenced resource is newer then the rc file
From: Jurko Gospodnetić (jurko.gospodnetic_at_[hidden])
Date: 2012-06-27 12:25:29


   Hi.

> when compiling resource `rc` file (msvc toolset), dependent target is
> always rebuild when referenced resource file is newer then the `rc` file
> itself.
>
> Working example is attached. Change the modification time of the
> `test.ico` file to current. And try to build the project repeatedly.
> After first normal build, it is always rebuilt.

   Just looked into this a bit.

   Can't say I understand the problem thoroughly at the moment (will
have to wait to get home tonight to do some more research) but I think
the problem is caused by tools\rc.jam in the line:
   DEPENDS $(target) : $(res) ;
that should actually read:
   INCLUDES $(target) : $(res) ;

   After that change, the test project functions correctly for me.

   Could you please try and make that change locally at your end and
then retest the behaviour with your original project?

   I'll try to add a suitable test case to Boost Build tonight and do
some more checking to see that this does not cause breakage somewhere else.

   Best regards,
     Jurko Gospodnetić

P.S.
   You can simplify the example even more to just 'obj test : test.rc ;'
in jamroot.jam, and then you do not even need the .cpp file. :-)

   And you can see a similar, but correctly working situation by doing
'obj xxx : xxx.cpp ;' with an xxx.cpp file including an xxx.h file.

P.P.S.
   Nice bug report! :-)


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