mirror of
https://github.com/boostorg/build.git
synced 2026-02-15 13:02:11 +00:00
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
# 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", [], ["<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>" + action)
|
|
|
|
return targets.create_typed_metatarget(target_name, "NOTFILE_MAIN", sources, requirements,
|
|
default_build, [])
|
|
|
|
|
|
get_manager().projects().add_rule("notfile", notfile)
|