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