author | Dmitriy Morozov <morozov@cs.duke.edu> |
Mon, 25 Dec 2006 12:28:13 -0500 (2006-12-25) | |
changeset 9 | 4ed0ecccba8c |
parent 5 | ee9052408c40 |
child 12 | 0239c3f0a598 |
permissions | -rw-r--r-- |
0
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
1 |
import os |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
2 |
|
3
76a2c73ecbbf
Moved config to a separate directory
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
1
diff
changeset
|
3 |
optns = Options('config/' + os.uname()[1] + '.py') |
0
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
4 |
optns.AddOptions( |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
5 |
PathOption('cgal_path', 'where CGAL is installed', ''), |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
6 |
('cgal_architecture', 'string describing CGAL architecture'), |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
7 |
('INCPATH', 'additional include paths separated with :',''), |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
8 |
('LIBPATH', 'additional library paths separated with :',''), |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
9 |
PathOption('qt4_includes', 'where Qt4 headers are installed', ''), |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
10 |
PathOption('qt4_libs', 'where Qt4 libraries are installed', ''), |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
11 |
('CXX', 'The C++ compiler')) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
12 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
13 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
14 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
15 |
# Setup environment |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
16 |
base_env = Environment(options = optns, |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
17 |
ENV = os.environ, |
1
b227c7a027cd
Disabled missing qt4 tool, and added missing src/Sconcript
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
0
diff
changeset
|
18 |
tools=["default", "doxygen"], #, "qt4"], |
0
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
19 |
toolpath=["sconstools"]) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
20 |
Help (optns.GenerateHelpText(base_env)) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
21 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
22 |
dbg = base_env.Copy(CPPFLAGS = ['-g']) |
5
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
23 |
opt = base_env.Copy(CPPDEFINES = ['NDEBUG']) |
0
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
24 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
25 |
if ARGUMENTS.get('debug', 0): |
5
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
26 |
env = dbg |
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
27 |
env.Append (CPPDEFINES = ['CWDEBUG']) |
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
28 |
env.Append (LIBS = ['cwd']) |
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
29 |
elif ARGUMENTS.get('optimize', 0): |
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
30 |
opt.Append (CPPFLAGS = ['-O' + str(ARGUMENTS['optimize'])]) |
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
31 |
env = opt |
0
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
32 |
else: |
5
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
33 |
opt.Append (CPPFLAGS = ['-O']) |
ee9052408c40
Switched to a new architecture (Vineyard is a visitor for Filtration),
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
4
diff
changeset
|
34 |
env = opt |
0
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
35 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
36 |
if ARGUMENTS.get('counters', 0): |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
37 |
env.Append (CPPDEFINES = ['COUNTERS']) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
38 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
39 |
# Don't create .sconsign files all over the place |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
40 |
SConsignFile() |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
41 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
42 |
# Create tags file |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
43 |
#tags = env.Command('tags', 'sources', # FIXME |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
44 |
# ['ctags ']) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
45 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
46 |
# CGAL |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
47 |
cgal_path = env['cgal_path'] |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
48 |
cgal_architecture = env['cgal_architecture'] |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
49 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
50 |
cgal_defines = ['CGAL_USE_GMP', 'CGAL_USE_GMPXX', 'CGAL_USE_CORE'] |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
51 |
cgal_cpppath = [cgal_path + '/include/CGAL/config/' + cgal_architecture, cgal_path + '/include'] |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
52 |
cgal_libs = ['CGAL', 'core++', 'mpfr', 'gmpxx', 'gmp', 'm'] |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
53 |
cgal_link_flags = ['-Wl,-R' + cgal_path + '/lib/' + cgal_architecture] |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
54 |
cgal_lib_paths = [cgal_path + '/lib/' + cgal_architecture] |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
55 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
56 |
# Includes |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
57 |
cpppath = ['#/include'] + env['INCPATH'].split(':') |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
58 |
libpath = env['LIBPATH'].split(':') |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
59 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
60 |
# Append variables to the environment |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
61 |
env.Append (CPPDEFINES = cgal_defines, |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
62 |
CPPPATH = cpppath + cgal_cpppath, |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
63 |
LIBS = cgal_libs, |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
64 |
LIBPATH = libpath + cgal_lib_paths, |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
65 |
LINKFLAGS = cgal_link_flags) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
66 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
67 |
# Build documentation (in doc/) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
68 |
env.Doxygen("Doxyfile") |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
69 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
70 |
# Build stuff in src/, and export it |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
71 |
external_sources = SConscript(['src/SConscript'], exports = ['env']) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
72 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
73 |
# Build examples/ and tools/ |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
74 |
#SConscript (['examples/SConscript', |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
75 |
# 'tools/SConscript'], |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
76 |
# exports = ['env', 'external_sources']) |
4
c1be260ad990
Split OrderList into OrderList and ConsistencyList. Made efficient insertions possible.
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
3
diff
changeset
|
77 |
SConscript (['examples/SConscript', |
c1be260ad990
Split OrderList into OrderList and ConsistencyList. Made efficient insertions possible.
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
3
diff
changeset
|
78 |
'tests/SConscript'], |
0
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
79 |
exports = ['env', 'external_sources']) |
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
80 |
|
d95020656286
Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
81 |
# vim: syntax=python |