-
Notifications
You must be signed in to change notification settings - Fork 0
/
SConstruct
52 lines (39 loc) · 1.3 KB
/
SConstruct
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
import os
gtest_dir = Dir('#/3rdParty/gtest-1.7.0').abspath
lemon_dir = Dir('#/3rdParty/lemon-parser').abspath
src_dir = Dir('#/src').abspath
CPPPATH = [ src_dir ]
env = Environment(CPPPATH=CPPPATH)
env['CROSS_BUILD'] = None
env['gtest_dir'] = gtest_dir
env['lemon_dir'] = lemon_dir
env['variant_main'] = Dir('#/build/main').abspath
env['variant_test'] = Dir('#/build/test').abspath
env['variant_lemon'] = Dir('#/build/lemon').abspath
env['variant_gtest'] = Dir('#/build/gtest').abspath
env['variant_dir'] = env['variant_lemon']
SConscript('3rdParty/lemon.scons',
variant_dir = env['variant_lemon'],
exports = ['env'])
bld = Builder( \
action =
'cp -f %s . &&' % env['lemon_par'] +
'%s $SOURCE' % env['lemon_exe'],
suffix = '.c',
src_suffix = '.yy'
)
env['BUILDERS']['Lemon'] = bld
env['variant_dir'] = env['variant_main']
SConscript('src/main.scons',
variant_dir = env['variant_dir'],
exports = ['env'])
unittest = int(ARGUMENTS.get('UNITTEST', 0))
if unittest:
env['variant_dir'] = env['variant_gtest']
SConscript('3rdParty/gtest.scons',
variant_dir = env['variant_dir'],
exports = ['env'])
env['variant_dir'] = env['variant_test']
SConscript('test/test.scons',
variant_dir = env['variant_dir'],
exports = ['env'])