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