blob: 1352c547acf6fb9a673db1a09a706c7b84be652c (
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
|
# compiler definition for a generic C compiler
# based on suncc.py from waf
import os, optparse
from waflib import Errors
from waflib.Tools import ccroot, ar
from waflib.Configure import conf
#
# Let waflib provide useful defaults, but
# provide generic_cc as last resort fallback on
# all platforms
#
from waflib.Tools.compiler_c import c_compiler
for key in c_compiler.keys():
c_compiler[key].append('generic_cc')
@conf
def find_generic_cc(conf):
v = conf.env
cc = None
if v.CC:
cc = v.CC
elif 'CC' in conf.environ:
cc = conf.environ['CC']
if not cc:
cc = conf.find_program('cc', var='CC')
if not cc:
conf.fatal('generic_cc was not found')
try:
conf.cmd_and_log(cc + ['--version'])
except Errors.WafError:
conf.fatal('%r --version could not be executed' % cc)
v.CC = cc
v.CC_NAME = 'generic_cc'
@conf
def generic_cc_common_flags(conf):
v = conf.env
v.CC_SRC_F = ''
v.CC_TGT_F = ['-c', '-o']
v.CPPPATH_ST = '-I%s'
v.DEFINES_ST = '-D%s'
if not v.LINK_CC:
v.LINK_CC = v.CC
v.CCLNK_SRC_F = ''
v.CCLNK_TGT_F = ['-o']
v.LIB_ST = '-l%s' # template for adding libs
v.LIBPATH_ST = '-L%s' # template for adding libpaths
v.STLIB_ST = '-l%s'
v.STLIBPATH_ST = '-L%s'
v.cprogram_PATTERN = '%s'
v.cshlib_PATTERN = 'lib%s.so'
v.cstlib_PATTERN = 'lib%s.a'
def configure(conf):
conf.find_generic_cc()
conf.find_ar()
conf.generic_cc_common_flags()
conf.cc_load_tools()
conf.cc_add_flags()
conf.link_add_flags()
|