SConstruct
author Dmitriy Morozov <morozov@cs.duke.edu>
Mon, 30 Oct 2006 14:40:34 -0500 (2006-10-30)
changeset 1 b227c7a027cd
parent 0 d95020656286
child 3 76a2c73ecbbf
permissions -rw-r--r--
Disabled missing qt4 tool, and added missing src/Sconcript
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
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     3
optns =					Options('config.' + os.uname()[1] + '.py')
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
opt = 					base_env.Copy(CPPFLAGS = ['-O'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    23
dbg =					base_env.Copy(CPPFLAGS = ['-g'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    24
opt.Append				(CPPDEFINES = ['NDEBUG'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    25
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    26
if ARGUMENTS.get('debug', 0):
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    27
	env = dbg
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    28
	env.Append(CPPDEFINES = ['CWDEBUG'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    29
	env.Append(LIBS = ['cwd'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    30
else:
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    31
	env = opt
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    32
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    33
if ARGUMENTS.get('counters', 0):
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    34
	env.Append			(CPPDEFINES = ['COUNTERS'])
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
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    37
# Don't create .sconsign files all over the place
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    38
SConsignFile()
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    39
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    40
# Create tags file
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    41
#tags =					env.Command('tags', 'sources',			# FIXME
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    42
#									['ctags '])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    43
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    44
# CGAL
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    45
cgal_path = 			env['cgal_path']
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    46
cgal_architecture = 	env['cgal_architecture']	
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    47
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    48
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
    49
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
    50
cgal_libs = 			['CGAL', 'core++', 'mpfr', 'gmpxx', 'gmp', 'm']
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    51
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
    52
cgal_lib_paths = 		[cgal_path + '/lib/' + cgal_architecture]
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    53
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    54
# Includes
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    55
cpppath =				['#/include'] + env['INCPATH'].split(':')
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    56
libpath = 				env['LIBPATH'].split(':')
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    57
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    58
# Append variables to the environment
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    59
env.Append				(CPPDEFINES = cgal_defines, 
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    60
						 CPPPATH = cpppath + cgal_cpppath,
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    61
						 LIBS = cgal_libs, 
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    62
						 LIBPATH = libpath + cgal_lib_paths, 
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    63
						 LINKFLAGS = cgal_link_flags)
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    64
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    65
# Build documentation (in doc/)
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    66
env.Doxygen("Doxyfile")
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    67
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    68
# Build stuff in src/, and export it
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    69
external_sources = 		SConscript(['src/SConscript'], exports = ['env'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    70
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    71
# Build examples/ and tools/
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    72
#SConscript				(['examples/SConscript',
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    73
#						  'tools/SConscript'],
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    74
#						 exports = ['env', 'external_sources'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    75
SConscript				(['examples/SConscript'],
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    76
						 exports = ['env', 'external_sources'])
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    77
d95020656286 Initial conversion to Dionysus architecture
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    78
# vim: syntax=python