mirror of
https://github.com/boostorg/build.git
synced 2026-02-15 13:02:11 +00:00
63 lines
1.6 KiB
Plaintext
63 lines
1.6 KiB
Plaintext
# 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 set-message ( * )
|
|
{
|
|
self.1 = $(1) ;
|
|
self.2 = $(2) ;
|
|
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 1 2 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 ] ;
|
|
|
|
local result = [ targets.main-target-alternative
|
|
[ new message-target-class $(name) : $(project)
|
|
: [ targets.main-target-sources : $(name) ]
|
|
: [ targets.main-target-requirements : $(project) ]
|
|
: [ targets.main-target-default-build : $(project) ]
|
|
: [ targets.main-target-usage-requirements : $(project) ]
|
|
] ] ;
|
|
$(result).set-message $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
|
|
return $(result) ;
|
|
}
|
|
IMPORT $(__name__) : message : : message ;
|