SConstruct
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--
Added pair_simplices() to Filtration (without arguments)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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