-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSConstruct
71 lines (56 loc) · 2.43 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
63
64
65
66
67
68
69
70
71
import os
import Build
SetOption('num_jobs', 4)
VariantDir('Libraries/build', 'Libraries')
VariantDir('Simulator/build', 'Simulator', duplicate = 0)
VariantDir('Interpolator/build', 'Interpolator', duplicate = 0)
VariantDir('Previewer/build', 'Previewer', duplicate = 0)
VariantDir('External/json-c/build', 'External/json-c', duplicate = 0)
VariantDir('Papers/build', 'Papers', duplicate = 0)
includes = ["-ILibraries", "-IExternal/json-c", "-I/opt/local/include"]
flags = includes + ["-std=c99", "-Wall", "-Werror", "-fobjc-gc"]
releaseFlags = flags + ["-O4"]
debugFlags = flags + ["-g"]
buildMode = ARGUMENTS.get("mode", "debug")
if buildMode == "debug":
useFlags = debugFlags
elif buildMode == "release":
useFlags = releaseFlags
else:
print "Error: unknown build mode: %s" % buildMode
exit()
print "=== Building in %s mode ===" % buildMode
outerEnv = Environment(
ENV = { "PATH": os.environ['PATH'] },
CC = "clang",
CCFLAGS = useFlags,
LIBPATH = ["#Libraries/build/libcurve",
"#Libraries/build/libparticles",
"#Libraries/build/libcomputer",
"#Libraries/build/librenderer",
"#Libraries/build/libpreviewer",
"#Libraries/build/libsimulator",
"#External/json-c/build",
"/opt/local/lib"])
Build.InstallTools(outerEnv)
Export("outerEnv")
# Papers
#papers = SConscript('Papers/build/SConscript')
# External libraries
libjsonc = SConscript('External/json-c/build/SConscript')
libraries = ['libjsonc']
# Base Libraries
libparticles = SConscript('Libraries/build/libparticles/SConscript', libraries)
libcurve = SConscript('Libraries/build/libcurve/SConscript', libraries)
libcomputer = SConscript('Libraries/build/libcomputer/SConscript', libraries)
libraries += ['libcomputer', 'libparticles', 'libcurve']
# High-level Libraries
librenderer = SConscript('Libraries/build/librenderer/SConscript', libraries)
libpreviewer = SConscript('Libraries/build/libpreviewer/SConscript', libraries)
libsimulator = SConscript('Libraries/build/libsimulator/SConscript', libraries)
libraries += ['librenderer', 'libpreviewer', 'libsimulator']
# Tools
simulator = SConscript('Simulator/build/SConscript', libraries)
interpolator = SConscript('Interpolator/build/SConscript', libraries)
outerEnv.Install('/usr/local/lib', [libjsonc, libparticles, libcurve, libcomputer, librenderer, libpreviewer, libsimulator])
outerEnv.Alias('install', '/usr/local/lib')