| # 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 ; |