]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/tools/build/src/tools/make.py
4 # Copyright 2003 Dave Abrahams
5 # Copyright 2003 Douglas Gregor
6 # Copyright 2006 Rene Rivera
7 # Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
8 # Distributed under the Boost Software License, Version 1.0.
9 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
11 # This module defines the 'make' main target rule.
13 from b2
.build
.targets
import BasicTarget
14 from b2
.build
.virtual_target
import Action
, FileTarget
15 from b2
.build
import type
16 from b2
.manager
import get_manager
17 import b2
.build
.property_set
20 class MakeTarget(BasicTarget
):
22 def construct(self
, name
, source_targets
, property_set
):
24 action_name
= property_set
.get("<action>")[0]
25 action
= Action(get_manager(), source_targets
, action_name
[1:], property_set
)
26 target
= FileTarget(self
.name(), type.type(self
.name()),
27 self
.project(), action
, exact
=True)
28 return [ b2
.build
.property_set
.empty(),
29 [self
.project().manager().virtual_targets().register(target
)]]
31 def make (target_name
, sources
, generating_rule
,
32 requirements
=None, usage_requirements
=None):
34 target_name
= target_name
[0]
35 generating_rule
= generating_rule
[0]
36 if generating_rule
[0] != '@':
37 generating_rule
= '@' + generating_rule
43 requirements
.append("<action>%s" % generating_rule
)
47 project
= m
.projects().current()
49 engine
.register_bjam_action(generating_rule
)
51 targets
.main_target_alternative(MakeTarget(
53 targets
.main_target_sources(sources
, target_name
),
54 targets
.main_target_requirements(requirements
, project
),
55 targets
.main_target_default_build([], project
),
56 targets
.main_target_usage_requirements(usage_requirements
or [], project
)))
58 get_manager().projects().add_rule("make", make
)