/[escript]/trunk/escript/src/SConscript
ViewVC logotype

Contents of /trunk/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1246 - (show annotations)
Mon Aug 13 22:09:00 2007 UTC (12 years, 2 months ago) by phornby
File size: 2225 byte(s)
Add the esys and lib directories to the repository.
Remove the IS_WINDOWS_PLATFORM from the SConscripts, and
do the logic once in SConstruct.
SConstruct now includes example options files if the hostname_options file is not present. 
This needs some more work for the altix.
The tests now depend upon the build target. This is important it seems, as there appears to be the
possibility of calling linking different libraries
against incompatible versions of sub-libraries. 
This addressed most of the exceptions we were getting on windows.
All the useNetCDF logic is now done by SConstruct.
Made the init_target part of the build alias so that __ini__.py is created on a fresh checkout.

py_tests mostly pass on windows, only need to track down the exception in run_tests.
1 import os
2 Import('*')
3
4 local_env=env.Copy()
5 py_wrapper_local_env=env.Copy()
6 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
7 del py_wrapper_local_env['SHLIBPREFIX']
8
9 lib_name = 'escript'
10 py_wrapper_name = lib_name+'cpp'
11 py_wrapper_source = py_wrapper_name+'.cpp'
12 py_wrapper_lib_name = py_wrapper_name
13
14 # get the relevant file names:
15 src_dir = local_env.Dir('.').srcnode().abspath
16 filenames = [ x for x in os.listdir(src_dir) if os.path.splitext(x)[1] in [".h", ".c", ".cpp"] ]
17
18 sources = [x for x in filenames if os.path.splitext(x)[1] in ['.cpp', '.c']]
19 headers = [x for x in filenames if os.path.splitext(x)[1] in ['.h']]
20
21 # Filter out sources that should not be in the list automatically
22 sources.remove(py_wrapper_source) # FIXME: should probably refactor the source tree so the python wrapper isn't colocated with c++ sources
23
24 local_env.Append(LIBS = [boost_lib, 'esysUtils'] + sys_libs )
25 py_wrapper_local_env.Append(LIBS = [boost_lib, lib_name, 'esysUtils'] + sys_libs )
26
27 local_env.Append(CPPDEFINES = [ 'ESCRIPT_EXPORTS'] )
28
29 lib = local_env.SharedLibrary(lib_name, sources)
30 py_wrapper_lib = py_wrapper_local_env.SharedLibrary( py_wrapper_lib_name, py_wrapper_source)
31
32 include_path = Dir(lib_name, incinstall)
33
34 local_env.Install(include_path, headers )
35 local_env.Install(libinstall, lib)
36 py_wrapper_local_env.Install(pyinstall+'/escript', py_wrapper_lib)
37
38 # export the lib target since tests will depend on it
39 # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
40 # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
41 dep_lib = [libinstall+'/'+str(x) for x in lib]
42 Export('dep_lib')
43
44
45
46 # add source files to release
47 release_srcfiles = [ env.File(x) for x in filenames ] + [env.File("SConscript"), ]
48 env.Zip(src_zipfile, release_srcfiles)
49 try:
50 env.Tar(src_tarfile, release_srcfiles)
51 except AttributeError:
52 pass
53 # Call the python sconscript
54 env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
55
56 # Call the unit tests SConscript
57 local_env.SConscript(dirs = ['#/escript/test'], build_dir='#/build/$PLATFORM/escript/test', duplicate=0)

  ViewVC Help
Powered by ViewVC 1.1.26