$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r83623 - trunk/tools/build/v2
From: steven_at_[hidden]
Date: 2013-03-28 16:57:27
Author: steven_watanabe
Date: 2013-03-28 16:57:26 EDT (Thu, 28 Mar 2013)
New Revision: 83623
URL: http://svn.boost.org/trac/boost/changeset/83623
Log:
Handle known subfeatures in the toolset build request, so we can handle toolset=clang-linux-3.2 for example.
Text files modified: 
   trunk/tools/build/v2/build-system.jam |    40 +++++++++++-----------------------------
   1 files changed, 11 insertions(+), 29 deletions(-)
Modified: trunk/tools/build/v2/build-system.jam
==============================================================================
--- trunk/tools/build/v2/build-system.jam	(original)
+++ trunk/tools/build/v2/build-system.jam	2013-03-28 16:57:26 EDT (Thu, 28 Mar 2013)
@@ -19,6 +19,7 @@
 import os ;
 import path ;
 import project ;
+import property ;
 import property-set ;
 import regex ;
 import sequence ;
@@ -428,29 +429,17 @@
     for local t in $(option-toolsets) $(feature-toolsets)
     {
         # Parse toolset-version/properties.
-        local (t-v,t,v) = [ MATCH (([^-/]+)-?([^/]+)?)/?.* : $(t) ] ;
-        local toolset-version = $((t-v,t,v)[1]) ;
-        local toolset = $((t-v,t,v)[2]) ;
-        local version = $((t-v,t,v)[3]) ;
-
-        if $(.debug-config)
-        {
-            ECHO notice: [cmdline-cfg] Detected command-line request for
-                $(toolset-version): "toolset=" $(toolset) "version="
-                $(version) ;
-        }
-
-        # If the toolset is not known, configure it now.
+        local toolset = [ MATCH ([^/]+)/?.* : $(t) ] ;
+        local properties = [ feature.expand-subfeatures <toolset>$(toolset) : true ] ;
+        local toolset-property = [ property.select <toolset> : $(properties) ] ;
         local known ;
-        if $(toolset) in [ feature.values <toolset> ]
+        if $(toolset-property:G=) in [ feature.values <toolset> ]
         {
             known = true ;
         }
-        if $(known) && $(version) && ! [ feature.is-subvalue toolset
-            : $(toolset) : version : $(version) ]
-        {
-            known = ;
-        }
+
+        # If the toolset is not known, configure it now.
+
         # TODO: we should do 'using $(toolset)' in case no version has been
         # specified and there are no versions defined for the given toolset to
         # allow the toolset to configure its default version. For this we need
@@ -464,18 +453,11 @@
         {
             if $(.debug-config)
             {
-                ECHO "notice: [cmdline-cfg] toolset $(toolset-version) not"
+                ECHO "notice: [cmdline-cfg] toolset $(toolset) not"
                     "previously configured; attempting to auto-configure now" ;
             }
-            toolset.using $(toolset) : $(version) ;
-        }
-        else
-        {
-            if $(.debug-config)
-            {
-                ECHO notice: [cmdline-cfg] toolset $(toolset-version) already
-                    configured ;
-            }
+            local t,v = [ MATCH ([^-]+)-?(.+)? : $(toolset) ] ;
+            toolset.using $(t,v[1]) : $(t,v[2]) ;
         }
 
         # Make sure we get an appropriate property into the build request in