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