/[escript]/branches/RW_WIN32/SConstruct
ViewVC logotype

Contents of /branches/RW_WIN32/SConstruct

Parent Directory Parent Directory | Revision Log Revision Log


Revision 230 - (show annotations)
Fri Nov 25 06:51:36 2005 UTC (13 years, 10 months ago) by robwdcock
File size: 4193 byte(s)
+ Added ability to RunPyUnitTests when anything they depend on changes (assuming all dependencies are set up that is). Only implemented for bruce/test/python at this stage
1 import scons_ext
2
3 opts = Options('custom.py')
4 opts.AddOptions(
5 BoolOption('RELEASE', 'Set to build for release', 0),
6 PathOption('PYTHON_HOME','Path to python home','/usr/lib/python2.3'),
7 PathOption('BOOST_HOME','Path to boost home','/usr/include/boost')
8 )
9
10 env = Environment(tools = ['default'],options = opts)
11
12 Help(opts.GenerateHelpText(env))
13
14 py_builder = Builder(action = scons_ext.build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)
15 env.Append(BUILDERS = {'PyCompile' : py_builder});
16
17 if env['PLATFORM'] == "win32":
18 runUnitTest_builder = Builder(action = scons_ext.runUnitTest, suffix = '.passed', src_suffix='.exe', single_source=True)
19 else:
20 runUnitTest_builder = Builder(action = scons_ext.runUnitTest, suffix = '.passed', single_source=True)
21 env.Append(BUILDERS = {'RunUnitTest' : runUnitTest_builder});
22
23 runPyUnitTest_builder = Builder(action = scons_ext.runPyUnitTest, suffix = '.passed', src_suffic='.py', single_source=True)
24 env.Append(BUILDERS = {'RunPyUnitTest' : runPyUnitTest_builder});
25
26
27 print "PLATFORM is:", env['PLATFORM']
28
29 EnsurePythonVersion(2,3)
30
31 #TODO: How do I convert these to options?
32 #TODO: Is there a more compact way of setting up the include paths?
33
34 # Third-Party libraries
35 boost_home = env['BOOST_HOME']
36 python_home = env['PYTHON_HOME']
37
38 # Where to install (and find) esys includes and libraries
39 # Note: #/ means relative to the top of source tree
40 esys_inc = '#/include'
41 esys_lib = '#/lib'
42
43 # Derived paths
44 if env['PLATFORM'] == "win32":
45 python_inc = python_home + '/include'
46 python_lib = python_home + '/libs'
47 boost_inc = boost_home
48 boost_lib = boost_home + '/windows_binary/lib'
49 elif env['PLATFORM'] == "posix":
50 python_inc = '/usr/include/python2.3'
51 python_lib = '/usr/lib'
52 boost_inc = '/usr/include'
53 boost_lib = '/usr/lib'
54
55 incdir = [ boost_inc, python_inc, esys_inc ]
56 libdir = [ boost_lib, python_lib, esys_lib ]
57
58 env.Append(CPPPATH=incdir)
59 env.Append(LIBPATH=libdir)
60
61
62 if env['PLATFORM'] == "win32":
63 env.Append(CCFLAGS = ' /GR /EHsc /TP /wd4068')
64 env.Append(CPPDEFINES = ['MSVC', 'WIN32'])
65 if False :
66 print "RELEASE build"
67 else:
68 print "DEBUG build"
69 env.Append(CPPDEFINES = ['DOASSERT'])
70 env.Append(CCFLAGS = ' /Od /MDd /RTC1')
71 env.Append(CPPDEFINES = ['_DEBUG'])
72 boost_lib_name = 'boost_python-vc71-mt-sgd'
73 elif env['PLATFORM'] == "posix":
74 env.Append(CC = ' -std=c99')
75 env.Append(CCFLAGS = ' -c -fpic -W -Wall -Wno-unknown-pragmas')
76 boost_lib_name = 'boost_python'
77 if False :
78 print "RELEASE build"
79 else:
80 print "DEBUG build"
81 env.Append(CPPDEFINES = ['DOASSERT', 'DOPROF'])
82 env.Prepend(CCFLAGS = ' -g -O0')
83
84 Export(["env", "incdir", "esys_inc", "esys_lib", "boost_lib_name" ])
85
86 # C/C++ Libraries
87 env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0)
88 env.SConscript(dirs = ['bruce/src'], build_dir='build/$PLATFORM/bruce', duplicate=0)
89 env.SConscript(dirs = ['escript/src/Data'], build_dir='build/$PLATFORM/escript/Data', duplicate=0)
90 env.SConscript(dirs = ['esysUtils/src'], build_dir='build/$PLATFORM/esysUtils', duplicate=0)
91 env.SConscript(dirs = ['tools/mmio/src'], build_dir='build/$PLATFORM/tools/mmio', duplicate=0)
92 env.SConscript(dirs = ['tools/CppUnitTest/src'], build_dir='build/$PLATFORM/tools/CppUnitTest', duplicate=0)
93 env.SConscript(dirs = ['finley/src/finleyC'], build_dir='build/$PLATFORM/finleyC', duplicate=0)
94 env.SConscript(dirs = ['finley/src/CPPAdapter'], build_dir='build/$PLATFORM/CPPAdapter', duplicate=0)
95
96 if env['PLATFORM'] == "win32":
97 env.SConscript(dirs = ['win32/win32_utils'], build_dir='build/$PLATFORM/win32_utils', duplicate=0)
98
99 # Unit Tests
100 env.SConscript(dirs = ['esysUtils/test/EsysException'], build_dir='build/$PLATFORM/esysUtils/test/EsysException', duplicate=0)
101 env.SConscript(dirs = ['escript/test'], build_dir='build/$PLATFORM/escript/test', duplicate=0)
102 env.SConscript(dirs = ['bruce/test'], build_dir='build/$PLATFORM/bruce/test', duplicate=0)
103 env.SConscript(dirs = ['finley/test'], build_dir='build/$PLATFORM/finley/test', duplicate=0)
104
105 # Python
106 env.SConscript(dirs = ['esys/py_src'], build_dir='build/$PLATFORM/esys/py', duplicate=0)
107
108

  ViewVC Help
Powered by ViewVC 1.1.26