$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r49006 - trunk/tools/build/v2/tools
From: ghost_at_[hidden]
Date: 2008-09-29 11:13:58
Author: vladimir_prus
Date: 2008-09-29 11:13:57 EDT (Mon, 29 Sep 2008)
New Revision: 49006
URL: http://svn.boost.org/trac/boost/changeset/49006
Log:
New main target class 'message'.
Added:
   trunk/tools/build/v2/tools/message.jam   (contents, props changed)
Text files modified: 
   trunk/tools/build/v2/tools/builtin.jam |     1 +                                       
   1 files changed, 1 insertions(+), 0 deletions(-)
Modified: trunk/tools/build/v2/tools/builtin.jam
==============================================================================
--- trunk/tools/build/v2/tools/builtin.jam	(original)
+++ trunk/tools/build/v2/tools/builtin.jam	2008-09-29 11:13:57 EDT (Mon, 29 Sep 2008)
@@ -27,6 +27,7 @@
 import types/register ;
 import utility ;
 import virtual-target ;
+import message ;
 
 # FIXME: the following generate module import is not needed here but removing it
 # too hastly will break using code (e.g. the main Boost library Jamroot file)
Added: trunk/tools/build/v2/tools/message.jam
==============================================================================
--- (empty file)
+++ trunk/tools/build/v2/tools/message.jam	2008-09-29 11:13:57 EDT (Mon, 29 Sep 2008)
@@ -0,0 +1,55 @@
+# Copyright 2008 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Defines main target type 'message', that prints a message when built for the
+# first time.
+
+import project ;
+import "class" : new ;
+import targets ;
+import property-set ;
+
+class message-target-class : basic-target
+{
+    rule __init__ ( name-and-dir : project : * )
+    {
+        basic-target.__init__ $(name-and-dir) : $(project) ;
+        self.3 = $(3) ;
+        self.4 = $(4) ;
+        self.5 = $(5) ;
+        self.6 = $(6) ;
+        self.7 = $(7) ;
+        self.8 = $(8) ;        
+        self.9 = $(9) ;        
+        self.built = ;
+    }
+    
+    rule construct ( name : source-targets * : property-set )
+    {
+        if ! $(self.built)
+        {
+            for i in 3 4 5 6 7 8 9
+            {
+                if $(self.$(i))
+                {
+                    ECHO $(self.$(i)) ;
+                }
+            }
+            self.built = 1 ;
+        }
+        
+        return [ property-set.empty ] ;
+    }
+}
+
+
+rule message ( name : * )
+{
+    local project = [ project.current ] ;
+
+    targets.main-target-alternative
+      [ new message-target-class $(name) : $(project) 
+        : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) ] ;
+}
+IMPORT $(__name__) : message : : message ;
\ No newline at end of file