From bda9f41a3c497931ebcb6e1678b59686bca3fdaa Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Mon, 29 Sep 2008 15:13:57 +0000 Subject: [PATCH] New main target class 'message'. [SVN r49006] --- v2/tools/builtin.jam | 1 + v2/tools/message.jam | 55 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 v2/tools/message.jam diff --git a/v2/tools/builtin.jam b/v2/tools/builtin.jam index 55035c06c..d3aeb17b8 100644 --- a/v2/tools/builtin.jam +++ b/v2/tools/builtin.jam @@ -27,6 +27,7 @@ import type ; 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) diff --git a/v2/tools/message.jam b/v2/tools/message.jam new file mode 100644 index 000000000..212d8542c --- /dev/null +++ b/v2/tools/message.jam @@ -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