]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/tools/build/src/tools/message.py
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / tools / build / src / tools / message.py
1 # Status: ported.
2 # Base revision: 64488.
3 #
4 # Copyright 2008, 2010 Vladimir Prus
5 # Distributed under the Boost Software License, Version 1.0.
6 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
7
8 # Defines main target type 'message', that prints a message when built for the
9 # first time.
10
11 import b2.build.targets as targets
12 import b2.build.property_set as property_set
13
14 from b2.manager import get_manager
15
16 class MessageTargetClass(targets.BasicTarget):
17
18 def __init__(self, name, project, sources, requirements, default_build,
19 usage_requirements, *args):
20 targets.BasicTarget.__init__(
21 self, name, project, sources, requirements, default_build, usage_requirements)
22 self.args = args
23 self.built = False
24
25 def construct(self, name, sources, ps):
26
27 if not self.built:
28 for arg in self.args:
29 if type(arg) == type([]):
30 arg = " ".join(arg)
31 print arg
32 self.built = True
33
34 return (property_set.empty(), [])
35
36 def message(name, *args):
37
38 if type(name) == type([]):
39 name = name[0]
40
41 t = get_manager().targets()
42 project = get_manager().projects().current()
43
44 return t.main_target_alternative(
45 MessageTargetClass(
46 name, project,
47 t.main_target_sources([], name),
48 t.main_target_requirements([], project),
49 t.main_target_default_build([], project),
50 t.main_target_usage_requirements([], project),
51 *args
52 ))
53
54 get_manager().projects().add_rule("message", message)