summaryrefslogtreecommitdiff
path: root/tools/build/v2/test/inherit_toolset.py
blob: ca050d2c4f8d8bf1b9db466afd39d6a45f11b890 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/python

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

import BoostBuild
import string

t = BoostBuild.Tester(pass_toolset=0)

t.write("a.cpp", """
""")

t.write("yfc1.jam", """
import feature ;
import generators ;

feature.extend toolset : yfc1 ;
rule init ( ) { }

generators.register-standard yfc1.compile : CPP : OBJ : <toolset>yfc1 ;
generators.register-standard yfc1.link : OBJ : EXE : <toolset>yfc1 ;

actions compile { yfc1-compile }
actions link { yfc1-link }
""")

t.write("yfc2.jam", """
import feature ;
import toolset ;

feature.extend toolset : yfc2 ;
toolset.inherit yfc2 : yfc1 ;
rule init ( ) { }

actions link { yfc2-link }
""")

t.write("jamfile.jam", """
exe a : a.cpp ;
""")

t.write("jamroot.jam", """
using yfc1 ;
""")

t.run_build_system("-n -d2 yfc1")
t.fail_test(string.find(t.stdout(), "yfc1-link") == -1)

# Make sure we do not have to explicitly 'use' yfc1.
t.write("jamroot.jam", """
using yfc2 ;
""")

t.run_build_system("-n -d2 yfc2")
t.fail_test(string.find(t.stdout(), "yfc2-link") == -1)

t.cleanup()