This repository has been archived by the owner on Sep 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
/
SConstruct
62 lines (51 loc) · 2.14 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
51
52
53
54
55
56
57
58
59
60
61
62
# Copyright 2015 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# user specified variables
vars = Variables('custom.py')
vars.Add(BoolVariable('RELEASE', 'Set to 1 to build for release', 1))
vars.Add(BoolVariable('STATICLINK', 'Set to 1 to link libraries statically', 0))
vars.Add(BoolVariable('TCMALLOC', 'Set to 1 to use tcmalloc', 1))
vars.Add(('CXX', 'The default C++ compiler used'))
vars.Add(('LD', 'The default linker used'))
vars.Add(('AR', 'The default make library archive used'))
vars.Add(('NM', 'The default symbol table viewer used'))
vars.Add(('CPPPATH', 'System default C++ include directory'))
vars.Add(('LIBPATH', 'System default library directory'))
env = Environment(variables = vars)
if env['RELEASE']:
mymode = 'release'
env.Append(CCFLAGS=['-O3', '-DNDEBUG'])
else:
mymode = 'debug'
env.Append(CCFLAGS=['-Wall', '-Wextra'])
#tell the user what we're doing
print '**** Compiling in ' + mymode + ' mode...'
if env['STATICLINK']:
print '**** Using static linking...'
env.Append(LINKFLAGS=['--static'])
buildroot = '#' + mymode #holds the root of the build directory tree
# add project-wide includes
env.Append(CPPPATH = ['#oldisim/include/', '#third_party/cereal/include/', '#third_party/boost_1_53_0'])
# use pthreads
env.Append(CXXFLAGS=['-pthread'])
env.Append(LINKFLAGS=['-pthread'])
#make sure the sconscripts can get to the variables
Export('env', 'buildroot')
#put all .sconsign files in one place
env.SConsignFile()
#specify the sconscript for myprogram
project = 'oldisim'
SConscript(project + '/SConscript', exports=['project'])
project = 'workloads'
SConscript(project + '/SConscript', exports=['project'])