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

Annotation of /trunk/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1246 - (hide annotations)
Mon Aug 13 22:09:00 2007 UTC (12 years, 3 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 gross 700 import os
2 jgs 181 Import('*')
3    
4 robwdcock 682 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 jgs 181
9 robwdcock 682 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 jgs 277
14 gross 700 # get the relevant file names:
15 robwdcock 682 src_dir = local_env.Dir('.').srcnode().abspath
16 gross 700 filenames = [ x for x in os.listdir(src_dir) if os.path.splitext(x)[1] in [".h", ".c", ".cpp"] ]
17 jgs 181
18 robwdcock 682 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 gross 700
21 robwdcock 682 # 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 jgs 277
24 phornby 1235 local_env.Append(LIBS = [boost_lib, 'esysUtils'] + sys_libs )
25     py_wrapper_local_env.Append(LIBS = [boost_lib, lib_name, 'esysUtils'] + sys_libs )
26 jgs 190
27 gross 1023 local_env.Append(CPPDEFINES = [ 'ESCRIPT_EXPORTS'] )
28 woo409 757
29 robwdcock 682 lib = local_env.SharedLibrary(lib_name, sources)
30     py_wrapper_lib = py_wrapper_local_env.SharedLibrary( py_wrapper_lib_name, py_wrapper_source)
31 jgs 481
32 robwdcock 682 include_path = Dir(lib_name, incinstall)
33 jgs 181
34 robwdcock 682 local_env.Install(include_path, headers )
35     local_env.Install(libinstall, lib)
36     py_wrapper_local_env.Install(pyinstall+'/escript', py_wrapper_lib)
37 jgs 277
38 robwdcock 682 # 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 jgs 277
44 gross 700
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 gross 1131 try:
50     env.Tar(src_tarfile, release_srcfiles)
51     except AttributeError:
52     pass
53 robwdcock 682 # Call the python sconscript
54     env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
55 jgs 277
56 robwdcock 682 # 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