/[escript]/trunk-mpi-branch/escript/src/SConscript
ViewVC logotype

Diff of /trunk-mpi-branch/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/escript/src/Data/SConscript revision 468 by jgs, Wed Jan 25 06:50:39 2006 UTC trunk-mpi-branch/escript/src/SConscript revision 1016 by gross, Thu Mar 8 06:31:28 2007 UTC
# Line 1  Line 1 
1  libinstall = None  import os
   
2  Import('*')  Import('*')
3    
4  import os  local_env=env.Copy()
5  import string  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_libs + [ 'esysUtils'] + sys_libs + netCDF_libs_cxx + mpi_libs)
25    py_wrapper_local_env.Append(LIBS = boost_libs + [ lib_name, 'esysUtils'] + sys_libs + netCDF_libs_cxx)
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    
 libname = 'escriptcpp'  
45    
46  escript_path = str(esysroot) + '/escript/inc'  # add source files to release
47  esysUtils_path = str(esysroot) + '/esysUtils/src'  release_srcfiles = [ env.File(x) for x in filenames ] + [env.File("SConscript"), ]
48    env.Zip(src_zipfile, release_srcfiles)
49    env.Tar(src_tarfile, release_srcfiles)
50    
51  esysUtils_lib_path = str(esysroot) + '/esysUtils/lib'  # Call the python sconscript
52    env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
53    
54  esysUtils_lib = str(esysUtils_lib_path) + '/libesysUtils.a'  # Call the unit tests SConscript
55    local_env.SConscript(dirs = ['#/escript/test'], build_dir='#/build/$PLATFORM/escript/test', duplicate=0)
 cpp_path = [escript_path,  
             esysUtils_path,  
             python_path,  
             boost_path]  
   
 sources = ['AbstractContinuousDomain.cpp',  
            'AbstractDomain.cpp',  
            'AbstractSystemMatrix.cpp',  
            'DataAbstract.cpp',  
            'DataArray.cpp',  
            'DataArrayView.cpp',  
            'DataBlocks2D.cpp',  
            'DataCached.cpp',  
            'DataC.cpp',  
            'DataConstant.cpp',  
            'Data.cpp',  
            'DataEmpty.cpp',  
            'DataExpanded.cpp',  
            'DataFactory.cpp',  
            'DataProf.cpp',  
            'DataTagged.cpp',  
            'DataVariable.cpp',  
            'DataVector.cpp',  
            'FunctionSpace.cpp',  
            'FunctionSpaceFactory.cpp',  
            'NullDomain.cpp',  
            'Taipan.cpp',  
            'Utils.cpp',  
            'escriptcpp.cpp']  
   
 lib_path = [esysUtils_lib_path,  
             boost_lib_path]  
   
 libs = ['esysUtils',  
         str(boost_lib)]  
   
 libs.extend(sys_libs)  
   
 escript_env = Environment(ENV = os.environ)  
   
 escript_env.Replace(CXX = cxx)  
 escript_env.Replace(SHOBJSUFFIX = '.lo')  
 escript_env.Replace(CXXFLAGS = cxx_flags)  
 escript_env.Replace(CPPPATH = cpp_path)  
 escript_env.Replace(LIBPATH = lib_path)  
 escript_env.Replace(LIBS = libs)  
   
 escript_lib = escript_env.SharedLibrary(libname, sources)  
   
 Depends(escript_lib, esysUtils_lib)  
   
 Default(escript_env.Install(libdir, escript_lib))  
 Default(escript_env.Install(libdir2, escript_lib))  
 if libinstall != None:  
   Default(escript_env.Install(libinstall, escript_lib))  

Legend:
Removed from v.468  
changed lines
  Added in v.1016

  ViewVC Help
Powered by ViewVC 1.1.26