2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-15 00:52:16 +00:00
Files
build/v2/tools/message.py
Vladimir Prus bbb80ee03d Port tools/message.jam.
[SVN r64708]
2010-08-09 20:54:29 +00:00

47 lines
1.2 KiB
Python

# Status: ported.
# Base revision: 64488.
#
# Copyright 2008, 2010 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 b2.build.targets as targets
import b2.build.property_set as property_set
from b2.manager import get_manager
class MessageTargetClass(targets.BasicTarget):
def __init__(self, name, project, *args):
targets.BasicTarget.__init__(self, name, project, [])
self.args = args
self.built = False
def construct(self, name, sources, ps):
if not self.built:
for arg in self.args:
if type(arg) == type([]):
arg = " ".join(arg)
print arg
self.built = True
return (property_set.empty(), [])
def message(name, *args):
if type(name) == type([]):
name = name[0]
t = get_manager().targets()
project = get_manager().projects().current()
return t.main_target_alternative(MessageTargetClass(*((name, project) + args)))
get_manager().projects().add_rule("message", message)