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

Annotation of /branches/RW_WIN32/SConstruct

Parent Directory Parent Directory | Revision Log Revision Log


Revision 305 - (hide annotations)
Sat Dec 3 05:05:25 2005 UTC (13 years, 4 months ago) by robwdcock
File size: 4248 byte(s)
+ Added default targets and test target aliases to control what is built better.
1 robwdcock 229 import scons_ext
2    
3 robwdcock 186 opts = Options('custom.py')
4     opts.AddOptions(
5     BoolOption('RELEASE', 'Set to build for release', 0),
6 robwdcock 222 PathOption('PYTHON_HOME','Path to python home','/usr/lib/python2.3'),
7     PathOption('BOOST_HOME','Path to boost home','/usr/include/boost')
8 robwdcock 186 )
9 robwdcock 220
10 robwdcock 229 env = Environment(tools = ['default'],options = opts)
11 robwdcock 220
12 robwdcock 229 Help(opts.GenerateHelpText(env))
13 robwdcock 220
14 robwdcock 229 py_builder = Builder(action = scons_ext.build_py, suffix = '.pyc', src_suffix = '.py', single_source=True)
15 robwdcock 220 env.Append(BUILDERS = {'PyCompile' : py_builder});
16 robwdcock 186
17 robwdcock 229 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 robwdcock 230 runPyUnitTest_builder = Builder(action = scons_ext.runPyUnitTest, suffix = '.passed', src_suffic='.py', single_source=True)
24     env.Append(BUILDERS = {'RunPyUnitTest' : runPyUnitTest_builder});
25 robwdcock 229
26 robwdcock 230
27 robwdcock 186 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 robwdcock 222 boost_home = env['BOOST_HOME']
36 robwdcock 209 python_home = env['PYTHON_HOME']
37 robwdcock 186
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 robwdcock 305 env.Default(esys_lib)
44     env.Alias('py_test')
45    
46 robwdcock 186 # Derived paths
47 phornby 221 if env['PLATFORM'] == "win32":
48     python_inc = python_home + '/include'
49     python_lib = python_home + '/libs'
50     boost_inc = boost_home
51 robwdcock 222 boost_lib = boost_home + '/windows_binary/lib'
52 phornby 221 elif env['PLATFORM'] == "posix":
53     python_inc = '/usr/include/python2.3'
54     python_lib = '/usr/lib'
55     boost_inc = '/usr/include'
56     boost_lib = '/usr/lib'
57 robwdcock 186
58     incdir = [ boost_inc, python_inc, esys_inc ]
59 robwdcock 209 libdir = [ boost_lib, python_lib, esys_lib ]
60 robwdcock 186
61     env.Append(CPPPATH=incdir)
62     env.Append(LIBPATH=libdir)
63    
64    
65     if env['PLATFORM'] == "win32":
66     env.Append(CCFLAGS = ' /GR /EHsc /TP /wd4068')
67     env.Append(CPPDEFINES = ['MSVC', 'WIN32'])
68     if False :
69     print "RELEASE build"
70     else:
71     print "DEBUG build"
72 phornby 221 env.Append(CPPDEFINES = ['DOASSERT'])
73 robwdcock 186 env.Append(CCFLAGS = ' /Od /MDd /RTC1')
74     env.Append(CPPDEFINES = ['_DEBUG'])
75 robwdcock 209 boost_lib_name = 'boost_python-vc71-mt-sgd'
76 phornby 221 elif env['PLATFORM'] == "posix":
77     env.Append(CC = ' -std=c99')
78     env.Append(CCFLAGS = ' -c -fpic -W -Wall -Wno-unknown-pragmas')
79     boost_lib_name = 'boost_python'
80     if False :
81     print "RELEASE build"
82     else:
83     print "DEBUG build"
84     env.Append(CPPDEFINES = ['DOASSERT', 'DOPROF'])
85     env.Prepend(CCFLAGS = ' -g -O0')
86 robwdcock 186
87 robwdcock 209 Export(["env", "incdir", "esys_inc", "esys_lib", "boost_lib_name" ])
88 robwdcock 186
89 robwdcock 220 # C/C++ Libraries
90 phornby 221 env.SConscript(dirs = ['paso/src'], build_dir='build/$PLATFORM/paso', duplicate=0)
91     env.SConscript(dirs = ['bruce/src'], build_dir='build/$PLATFORM/bruce', duplicate=0)
92     env.SConscript(dirs = ['escript/src/Data'], build_dir='build/$PLATFORM/escript/Data', duplicate=0)
93     env.SConscript(dirs = ['esysUtils/src'], build_dir='build/$PLATFORM/esysUtils', duplicate=0)
94     env.SConscript(dirs = ['tools/mmio/src'], build_dir='build/$PLATFORM/tools/mmio', duplicate=0)
95     env.SConscript(dirs = ['tools/CppUnitTest/src'], build_dir='build/$PLATFORM/tools/CppUnitTest', duplicate=0)
96 robwdcock 240 env.SConscript(dirs = ['finley/src/finleyC'], build_dir='build/$PLATFORM/finley/finleyC', duplicate=0)
97     env.SConscript(dirs = ['finley/src/CPPAdapter'], build_dir='build/$PLATFORM/finley/CPPAdapter', duplicate=0)
98 robwdcock 218
99 robwdcock 229 if env['PLATFORM'] == "win32":
100     env.SConscript(dirs = ['win32/win32_utils'], build_dir='build/$PLATFORM/win32_utils', duplicate=0)
101    
102 robwdcock 218 # Unit Tests
103 phornby 221 env.SConscript(dirs = ['esysUtils/test/EsysException'], build_dir='build/$PLATFORM/esysUtils/test/EsysException', duplicate=0)
104     env.SConscript(dirs = ['escript/test'], build_dir='build/$PLATFORM/escript/test', duplicate=0)
105     env.SConscript(dirs = ['bruce/test'], build_dir='build/$PLATFORM/bruce/test', duplicate=0)
106     env.SConscript(dirs = ['finley/test'], build_dir='build/$PLATFORM/finley/test', duplicate=0)
107    
108 robwdcock 229 # Python
109 robwdcock 240 env.SConscript(dirs = ['esys/py_src'], build_dir='build/$PLATFORM/esys/py', duplicate=0)

  ViewVC Help
Powered by ViewVC 1.1.26