blob: 1281e9ec2151be1d4f29f51a54321cbf9d490ca0 (
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# file : build2/buildfile
# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
import libs = libbutl%lib{butl}
exe{b}: \
{hxx ixx cxx}{ algorithm } \
{ cxx}{ b } \
{hxx ixx cxx}{ b-options } \
{hxx txx cxx}{ context } \
{hxx cxx}{ depdb } \
{hxx cxx}{ diagnostics } \
{hxx cxx}{ dump } \
{hxx ixx cxx}{ file } \
{hxx txx cxx}{ filesystem } \
{hxx cxx}{ lexer } \
{hxx cxx}{ module } \
{hxx ixx cxx}{ name } \
{hxx cxx}{ operation } \
{hxx cxx}{ parser } \
{hxx cxx}{ prerequisite } \
{hxx cxx}{ rule } \
{hxx }{ rule-map } \
{hxx cxx}{ scope } \
{hxx cxx}{ search } \
{hxx cxx}{ spec } \
{hxx ixx txx cxx}{ target } \
{hxx }{ target-key } \
{hxx }{ target-type } \
{hxx cxx}{ token } \
{hxx }{ types } \
{hxx cxx}{ types-parsers } \
{hxx ixx txx cxx}{ utility } \
{hxx ixx txx cxx}{ variable } \
{hxx }{ version } \
bin/{hxx cxx}{ guess } \
bin/{hxx cxx}{ init } \
bin/{hxx cxx}{ rule } \
bin/{hxx cxx}{ target } \
c/{hxx cxx}{ init } \
c/{hxx }{ target } \
cc/{hxx }{ common } \
cc/{hxx cxx}{ compile } \
cc/{hxx cxx}{ guess } \
cc/{hxx cxx}{ init } \
cc/{hxx cxx}{ install } \
cc/{hxx cxx}{ link } \
cc/{hxx cxx}{ module } \
cc/{ cxx}{ msvc } \
cc/{hxx cxx}{ target } \
cc/{hxx }{ types } \
cc/{hxx ixx cxx}{ utility } \
cc/{ cxx}{ windows-manifest } \
cc/{ cxx}{ windows-rpath } \
cli/{hxx cxx}{ init } \
cli/{hxx cxx}{ rule } \
cli/{hxx cxx}{ target } \
config/{hxx cxx}{ init } \
config/{hxx }{ module } \
config/{hxx cxx}{ operation } \
config/{hxx txx cxx}{ utility } \
cxx/{hxx cxx}{ init } \
cxx/{hxx cxx}{ target } \
dist/{hxx cxx}{ init } \
dist/{hxx cxx}{ operation } \
dist/{hxx cxx}{ rule } \
install/{hxx cxx}{ init } \
install/{hxx cxx}{ operation } \
install/{hxx cxx}{ rule } \
install/{hxx }{ utility } \
test/{hxx cxx}{ init } \
test/{hxx cxx}{ operation } \
test/{hxx cxx}{ rule } \
$libs
# Pass our compiler target to be used as build2 host.
#
# obj{context}: cxx.poptions += -DBUILD2_HOST_TRIPLET=\"$cxx.target\"
if ($__build2_greater_than_0_2_0_hack__ == "true")
{
var=cxx.target
}
else
{
var=cxx.host
}
obj{context}: cxx.poptions += -DBUILD2_HOST_TRIPLET='"'$($var)'"'
# Load the cli module but only if it's available. This way a distribution
# that includes pre-generated files can be built without installing cli.
# This is also the reason why above we explicitly spelled out individual
# source files instead of using the cli.cxx{} group (it won't be there
# unless the module is loaded).
#
using? cli
if! $cli.loaded
{
define cli: file
cli{*}: extension = cli
}
{hxx ixx cxx}{b-options}: cli{b}
cli.options += -I $src_root --include-with-brackets --include-prefix build2 \
--guard-prefix BUILD2 --cxx-prologue "#include <build2/types-parsers>" \
--cli-namespace build2::cl --generate-file-scanner --generate-parse \
--generate-specifier
# Usage options.
#
cli.options += --suppress-undocumented --long-usage --ansi-color \
--page-usage 'build2::print_$name$_' --option-length 20
# Include generated cli files into the distribution.
#
hxx{*-options}: dist = true
ixx{*-options}: dist = true
cxx{*-options}: dist = true
|