$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: ghost_at_[hidden]
Date: 2008-04-01 13:53:45
Author: vladimir_prus
Date: 2008-04-01 13:53:45 EDT (Tue, 01 Apr 2008)
New Revision: 43987
URL: http://svn.boost.org/trac/boost/changeset/43987
Log:
Make logic for old-sprit-demanding compilers work.
The previous code was all broken, trying to mix conditional
requirements and indirect conditional requirements like:
    <toolset>borland:<conditional>@include-spirit
Text files modified: 
   trunk/libs/serialization/build/Jamfile.v2 |    47 ++++++++++++++++++++++++++------------- 
   1 files changed, 31 insertions(+), 16 deletions(-)
Modified: trunk/libs/serialization/build/Jamfile.v2
==============================================================================
--- trunk/libs/serialization/build/Jamfile.v2	(original)
+++ trunk/libs/serialization/build/Jamfile.v2	2008-04-01 13:53:45 EDT (Tue, 01 Apr 2008)
@@ -9,22 +9,43 @@
 project boost/serialization
     : source-location ../src
     : requirements <dependency>../../config/test//BOOST_NO_STD_LOCALE
+      <conditional>@include-spirit
 ;
 
 SPIRIT_ROOT = [ modules.peek : SPIRIT_ROOT ] ;
 rule include-spirit ( properties * )
 {
-    local result ;
-    if ( $(SPIRIT_ROOT) ) {
-        # note - we can't use <include>$(SPIRIT_ROOT) because 
-        # it puts -I$(SPIRIT_ROOT) AFTER the "../../.." in the command line.
-        # so use these instead 
-        result = <cxxflags>-I$(SPIRIT_ROOT) ;
+    local old-compiler ;
+    if <toolset>borland in $(properties)
+    {
+        old-compiler = true ;
     }
-    else {
-        echo **** spirit 1.6x required to build library with this compiler **** ;
-        result = <build>no ;
+    else if <toolset>msvc in $(properties)
+    {
+        if <toolset-msvc:version>6.5 in $(properties)
+          || <toolset-msvc:version>7.0 in $(properties)
+        {            
+            old-compiler = true ;
+        }        
     }
+        
+    local result ;
+    if $(old-compiler)
+    {        
+        if $(SPIRIT_ROOT)
+        {
+            # note - we can't use <include>$(SPIRIT_ROOT) because 
+            # it puts -I$(SPIRIT_ROOT) AFTER the "../../.." in the command line.
+            # so use these instead 
+            result = <cxxflags>-I$(SPIRIT_ROOT) ;
+        }
+        else 
+        {
+            echo **** spirit 1.6x required to build library with this compiler **** ;
+            result = <build>no ;
+        }
+    }    
+    return $(result) ;
 }
 
 SOURCES = 
@@ -72,19 +93,13 @@
     : $(SOURCES).cpp
     : 
     <toolset>msvc:<cxxflags>/Gy
-    <toolset>msvc-6.5:<conditional>@include-spirit
-    <toolset>msvc-7.0:<conditional>@include-spirit
-    <toolset>borland:<conditional>@include-spirit
     <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
     ;
 
 lib boost_wserialization 
     : $(WSOURCES).cpp boost_serialization 
-    :	  
+    :     
     <toolset>msvc:<cxxflags>/Gy 
-    <toolset>msvc-6.5:<conditional>@include-spirit
-    <toolset>msvc-7.0:<conditional>@include-spirit
-    <toolset>borland:<conditional>@include-spirit
     <dependency>../../config/test//BOOST_NO_STD_WSTREAMBUF
     <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
     ;