# Status: ported. # Base revision: 64429. # # Copyright (c) 2005-2010 Vladimir Prus. # # Use, modification and distribution is subject to the Boost Software # License Version 1.0. (See accompanying file LICENSE_1_0.txt or # http://www.boost.org/LICENSE_1_0.txt) import b2.build.type as type import b2.build.generators as generators import b2.build.virtual_target as virtual_target import b2.build.toolset as toolset import b2.build.targets as targets from b2.manager import get_manager from b2.util import bjam_signature type.register("NOTFILE_MAIN") class NotfileGenerator(generators.Generator): def run(self, project, name, ps, sources): pass action_name = ps.get('action')[0] if action_name[0] == '@': action = virtual_target.Action(get_manager(), sources, action_name[1:], ps) else: action = virtual_target.Action(get_manager(), sources, "notfile.run", ps) return [get_manager().virtual_targets().register( virtual_target.NotFileTarget(name, project, action))] generators.register(NotfileGenerator("notfile.main", False, [], ["NOTFILE_MAIN"])) toolset.flags("notfile.run", "ACTION", [], [""]) get_manager().engine().register_action("notfile.run", "$(ACTION)") @bjam_signature((["target_name"], ["action"], ["sources", "*"], ["requirements", "*"], ["default_build", "*"])) def notfile(target_name, action, sources, requirements, default_build): requirements.append("" + action) return targets.create_typed_metatarget(target_name, "NOTFILE_MAIN", sources, requirements, default_build, []) get_manager().projects().add_rule("notfile", notfile)