/[escript]/branches/scons-dev/bruce/src/SConscript
ViewVC logotype

Contents of /branches/scons-dev/bruce/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1653 - (show annotations)
Wed Jul 16 00:31:11 2008 UTC (11 years, 8 months ago) by ksteube
File size: 2468 byte(s)
New scons scripts now work with scons-98 as well as scons-96...only
had to use env.Clone() instead of env.Copy().

Added copyright to each scons file.

1 #
2 # $Id$
3 #
4 #######################################################
5 #
6 # Copyright 2003-2007 by ACceSS MNRF
7 # Copyright 2007 by University of Queensland
8 #
9 # http://esscc.uq.edu.au
10 # Primary Business: Queensland, Australia
11 # Licensed under the Open Software License version 3.0
12 # http://www.opensource.org/licenses/osl-3.0.php
13 #
14 #######################################################
15 #
16
17 import os
18 Import('*')
19
20 try:
21 local_env = env.Clone() # scons-98.03
22 except AttributeError:
23 local_env = env.Copy() # scons-96.92
24
25 py_wrapper_local_env=env.Copy()
26 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
27 del py_wrapper_local_env['SHLIBPREFIX']
28
29 lib_name = 'bruce'
30 py_wrapper_name = lib_name+'cpp'
31 py_wrapper_source = py_wrapper_name+'.cpp'
32 py_wrapper_lib_name = py_wrapper_name
33
34 # get the relevant file names:
35 src_dir = local_env.Dir('.').srcnode().abspath
36 filenames = [ x for x in os.listdir(src_dir) if os.path.splitext(x)[1] in [".h", ".c", ".cpp"] ]
37
38 sources = [x for x in filenames if os.path.splitext(x)[1] in ['.cpp', '.c']]
39 headers = [x for x in filenames if os.path.splitext(x)[1] in ['.h']]
40 # Filter out sources that should not be in the list automatically
41 sources.remove(py_wrapper_source) # FIXME: should probably refactor the source tree so the python wrapper isn't colocated with c++ sources
42
43 local_env.Append(LIBS = ['escript', 'esysUtils'])
44 py_wrapper_local_env.Append(LIBS = [lib_name, 'escript', 'esysUtils'])
45
46 local_env.Append(CPPDEFINES = 'BRUCE_EXPORTS')
47
48 lib = local_env.SharedLibrary(lib_name, sources)
49 py_wrapper_lib = py_wrapper_local_env.SharedLibrary( py_wrapper_lib_name, py_wrapper_source)
50
51 include_path = Dir(lib_name, incinstall)
52
53 local_env.Install(include_path, headers )
54 local_env.Install(libinstall, lib)
55 py_wrapper_local_env.Install(pyinstall+'/bruce', py_wrapper_lib)
56
57 # export the lib target since tests will depend on it
58 # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
59 # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
60 dep_lib = [libinstall+'/'+str(x) for x in lib]
61 Export('dep_lib')
62
63 # Call the python sconscript
64 env.SConscript(dirs = ['#/bruce/py_src'], build_dir='py', duplicate=0)
65
66 # Call the unit tests SConscript
67 local_env.SConscript(dirs = ['#/bruce/test'], build_dir='#/build/$PLATFORM/bruce/test', duplicate=0)

  ViewVC Help
Powered by ViewVC 1.1.26