Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r58775 - trunk/tools/build/v2/tools
From: ghost_at_[hidden]
Date: 2010-01-06 14:00:49


Author: vladimir_prus
Date: 2010-01-06 14:00:48 EST (Wed, 06 Jan 2010)
New Revision: 58775
URL: http://svn.boost.org/trac/boost/changeset/58775

Log:
Do not relink on installation if dll paths did not change.

Text files modified:
   trunk/tools/build/v2/tools/stage.jam | 28 +++++++++++++++++++++++++---
   1 files changed, 25 insertions(+), 3 deletions(-)

Modified: trunk/tools/build/v2/tools/stage.jam
==============================================================================
--- trunk/tools/build/v2/tools/stage.jam (original)
+++ trunk/tools/build/v2/tools/stage.jam 2010-01-06 14:00:48 EST (Wed, 06 Jan 2010)
@@ -354,18 +354,40 @@
 
     rule run ( project name ? : property-set : source : multiple ? )
     {
+ local need-relink ;
+
         if [ $(property-set).get <os> ] in NT CYGWIN ||
             [ $(property-set).get <target-os> ] in windows cygwin
         {
- # Relinking is never needed on NT.
- return [ stage.copy-file $(project)
- : $(source) : $(property-set) ] ;
         }
         else
         {
+ # See if the dll-path properties are not changed during
+ # install. If so, copy, don't relink.
+ local a = [ $(source).action ] ;
+ local p = [ $(a).properties ] ;
+ local original = [ $(p).get <dll-path> ] ;
+ local current = [ $(property-set).get <dll-path> ] ;
+
+ ECHO "XXX" $(current) "--" $(original) ;
+
+ if $(current) != $(original)
+ {
+ need-relink = true ;
+ }
+ }
+
+
+ if $(need-relink)
+ {
             return [ stage.relink-file $(project)
               : $(source) : $(property-set) ] ;
         }
+ else
+ {
+ return [ stage.copy-file $(project)
+ : $(source) : $(property-set) ] ;
+ }
     }
 }
 


Boost-Commit 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