Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r66172 - branches/release/tools/build/v2/build
From: ghost_at_[hidden]
Date: 2010-10-25 05:17:43


Author: vladimir_prus
Date: 2010-10-25 05:17:39 EDT (Mon, 25 Oct 2010)
New Revision: 66172
URL: http://svn.boost.org/trac/boost/changeset/66172

Log:
Merge Boost.Build configure changes, to unbreak Boost.Regex.

Text files modified:
   branches/release/tools/build/v2/build/configure.jam | 52 +++++++++++++++++++++++++++++----------
   1 files changed, 38 insertions(+), 14 deletions(-)

Modified: branches/release/tools/build/v2/build/configure.jam
==============================================================================
--- branches/release/tools/build/v2/build/configure.jam (original)
+++ branches/release/tools/build/v2/build/configure.jam 2010-10-25 05:17:39 EDT (Mon, 25 Oct 2010)
@@ -14,6 +14,8 @@
 import errors ;
 import targets ;
 import sequence ;
+import property ;
+import property-set ;
 import "class" : new ;
 
 rule log-summary ( )
@@ -63,6 +65,12 @@
     #.check-results += $(result) ;
 }
 
+rule log-library-search-result ( library : result )
+{
+ local x = [ PAD " - $(library) : $(result)" : $(.width) ] ;
+ log-check-result "$(x)" ;
+}
+
 rule print-component-configuration ( )
 {
     local c = [ sequence.unique $(.components) ] ;
@@ -109,11 +117,11 @@
 # Attempt to build a metatarget named by 'metatarget-reference'
 # in context of 'project' with properties 'ps'.
 # Returns non-empty value if build is OK.
-rule builds ( metatarget-reference : project : ps : what )
+rule builds-raw ( metatarget-reference : project : ps : what : retry ? )
 {
     local result ;
            
- if ! $(.$(what)-tested.$(ps))
+ if ! $(retry) && ! $(.$(what)-tested.$(ps))
     {
         .$(what)-tested.$(ps) = true ;
         
@@ -152,6 +160,25 @@
     }
 }
 
+rule builds ( metatarget-reference : properties * : what ? : retry ? )
+{
+ what ?= "$(metatarget-reference) builds" ;
+
+ # FIXME: this should not be hardcoded. Other checks might
+ # want to consider different set of features as relevant.
+ local toolset = [ property.select <toolset> : $(properties) ] ;
+ local toolset-version-property = "<toolset-$(toolset:G=):version>" ;
+ local relevant = [ property.select <target-os> <toolset> $(toolset-version-property)
+ <address-model> <architecture>
+ : $(properties) ] ;
+ local ps = [ property-set.create $(relevant) ] ;
+ local t = [ targets.current ] ;
+ local p = [ $(t).project ] ;
+
+ return [ builds-raw $(metatarget-reference) : $(p) : $(ps) : $(what) : $(retry) ] ;
+}
+
+
 # Called by Boost.Build startup code to specify name of a file
 # that will receive results of configure checks. This
 # should never be called by users.
@@ -174,36 +201,33 @@
     import targets ;
     import property ;
     
- rule __init__ ( target : true-properties * : false-properties * )
+ rule __init__ ( target message ? : true-properties * : false-properties * )
     {
         self.target = $(target) ;
+ self.message = $(message) ;
         self.true-properties = $(true-properties) ;
         self.false-properties = $(false-properties) ;
     }
         
     rule check ( properties * )
     {
- # FIXME: this should not be hardcoded. Other checks might
- # want to consider different set of features as relevant.
- local toolset = [ property.select <toolset> : $(properties) ] ;
- local ps = [ property-set.create $(toolset) ] ;
- local t = [ targets.current ] ;
- local p = [ $(t).project ] ;
- if [ configure.builds $(self.target) : $(p) : $(ps) : "$(self.target) builds" ]
+ local choosen ;
+ if [ configure.builds $(self.target) : $(properties) : $(self.message) ]
         {
- return $(self.true-properties) ;
+ choosen = $(self.true-properties) ;
         }
         else
         {
- return $(self.false-properties) ;
+ choosen = $(self.false-properties) ;
         }
+ return [ property.evaluate-conditionals-in-context $(choosen) : $(properties) ] ;
     }
 }
 
 
-rule check-target-builds ( target : true-properties * : false-properties * )
+rule check-target-builds ( target message ? : true-properties * : false-properties * )
 {
- local instance = [ new check-target-builds-worker $(target) : $(true-properties)
+ local instance = [ new check-target-builds-worker $(target) $(message) : $(true-properties)
       : $(false-properties) ] ;
     return <conditional>@$(instance).check ;
 }


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