blob: 212d8542cd6409bfcfa797af3ea1160ba762b37a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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 ;
|