|
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