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

Contents of /trunk/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2031 - (show annotations)
Wed Nov 12 08:02:33 2008 UTC (11 years ago) by phornby
File size: 5088 byte(s)
Need finer control than INTERFACE_STATIC_LIB could exert. Now there is a
XXX_STATIC_LIB for each lib.


1
2
3 ########################################################
4 #
5 # Copyright (c) 2003-2008 by University of Queensland
6 # Earth Systems Science Computational Center (ESSCC)
7 # http://www.uq.edu.au/esscc
8 #
9 # Primary Business: Queensland, Australia
10 # Licensed under the Open Software License version 3.0
11 # http://www.opensource.org/licenses/osl-3.0.php
12 #
13 ########################################################
14
15
16 import os
17 Import('*')
18
19 local_env = clone_env(env_mpi)
20 py_wrapper_local_env = clone_env(env_mpi)
21
22 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
23 del py_wrapper_local_env['SHLIBPREFIX']
24
25 sources = """
26 Assemble_AverageElementData.c
27 Assemble_CopyElementData.c
28 Assemble_CopyNodalData.c
29 Assemble_LumpedSystem.c
30 Assemble_NodeCoordinates.c
31 Assemble_PDE.c
32 Assemble_PDE_Single2_1D.c
33 Assemble_PDE_Single2_2D.c
34 Assemble_PDE_Single2_3D.c
35 Assemble_PDE_Single2_C.c
36 Assemble_PDE_System2_1D.c
37 Assemble_PDE_System2_2D.c
38 Assemble_PDE_System2_3D.c
39 Assemble_PDE_System2_C.c
40 Assemble_addToSystemMatrix.c
41 Assemble_getAssembleParameters.c
42 Assemble_getSize.c
43 Assemble_gradient.c
44 Assemble_integrate.c
45 Assemble_interpolate.c
46 Assemble_jacobeans.c
47 Assemble_setNormal.c
48 ElementFile.c
49 ElementFile_allocTable.c
50 ElementFile_copyTable.c
51 ElementFile_createColoring.c
52 ElementFile_distributeByRankOfDOF.c
53 ElementFile_gather.c
54 ElementFile_jacobeans.c
55 ElementFile_markNodes.c
56 ElementFile_optimizeOrdering.c
57 ElementFile_relableNodes.c
58 ElementFile_scatter.c
59 ElementFile_setCoordinates.c
60 ElementFile_setNodeRange.c
61 ElementFile_setTags.c
62 Finley.c
63 IndexList.c
64 Mesh.c
65 Mesh_createNodeFileMappings.c
66 Mesh_distributeByRankOfDOF.c
67 Mesh_findMatchingFaces.c
68 Mesh_getPattern.c
69 Mesh_glueFaces.c
70 Mesh_hex20.c
71 Mesh_hex8.c
72 Mesh_joinFaces.c
73 Mesh_markNodes.c
74 Mesh_merge.c
75 Mesh_optimizeDOFDistribution.c
76 Mesh_optimizeDOFLabeling.c
77 Mesh_prepare.c
78 Mesh_print.c
79 Mesh_read.c
80 Mesh_readGmsh.c
81 Mesh_rec4.c
82 Mesh_rec8.c
83 Mesh_relableElementNodes.c
84 Mesh_resolveNodeIds.c
85 Mesh_saveDX.c
86 Mesh_saveVTK.c
87 Mesh_setCoordinates.c
88 Mesh_tagmaps.c
89 Mesh_write.c
90 NodeFile.c
91 NodeFile_allocTable.c
92 NodeFile_copyTable.c
93 NodeFile_createDenseLabelings.c
94 NodeFile_gather.c
95 NodeFile_scatter.c
96 NodeFile_setCoordinates.c
97 NodeFile_setIdRange.c
98 NodeFile_setTags.c
99 NodeMapping.c
100 Quadrature.c
101 ReferenceElements.c
102 ShapeFunctions.c
103 TagMap.c
104 Util.c
105 CPPAdapter/FinleAdapterException.cpp
106 CPPAdapter/FinleyError.cpp
107 CPPAdapter/MeshAdapter.cpp
108 CPPAdapter/MeshAdapterFactory.cpp
109 CPPAdapter/SystemMatrixAdapter.cpp
110 CPPAdapter/TransportProblemAdapter.cpp
111 """.split()
112 headers = """
113 Assemble.h
114 ElementFile.h
115 Finley.h
116 FinleyVersion.h
117 IndexList.h
118 Mesh.h
119 NodeFile.h
120 NodeMapping.h
121 Quadrature.h
122 RectangularMesh.h
123 ReferenceElements.h
124 ShapeFunctions.h
125 TagMap.h
126 Util.h
127 vtkCellType.h
128 """.split()
129 cppadapter_headers = """
130 CPPAdapter/FinleyAdapterException.h
131 CPPAdapter/FinleyError.h
132 CPPAdapter/MeshAdapter.h
133 CPPAdapter/MeshAdapterFactory.h
134 CPPAdapter/SystemMatrixAdapter.h
135 CPPAdapter/TransportProblemAdapter.h
136 CPPAdapter/system_dep.h
137 """.split()
138
139 local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'] + env['sys_libs'] )
140
141 if IS_WINDOWS_PLATFORM :
142 local_env.Append(CPPDEFINES = ['FINLEY_EXPORTS',
143 'ESYSUTILS_STATIC_LIB'])
144
145 py_wrapper_local_env.Append(LIBS = ['finley', 'escript', 'esysUtils', 'paso'] + env['sys_libs'] )
146
147 module_name = 'finley'
148 py_wrapper_name = module_name + 'cpp'
149
150 lib = local_env.SharedLibrary(module_name, sources)
151 env.Alias('target_finley_so', lib)
152
153 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/finleycpp.cpp')
154 env.Alias('target_finleycpp_so', py_wrapper_lib)
155
156 include_path = Dir('finley', local_env['incinstall'])
157 cppadapter_include_path = Dir('CppAdapter', include_path)
158
159 tmp1 = local_env.Install(include_path, headers )
160 tmp2 = local_env.Install(cppadapter_include_path, cppadapter_headers )
161 env.Alias('target_install_finley_headers', [tmp1, tmp2])
162
163 tmp3 = local_env.Install(local_env['libinstall'], lib)
164 env.Alias('target_install_finley_so', tmp3)
165
166 #windows specific mod
167 tmp_inst = os.path.join(local_env['pyinstall'],module_name)
168 if os.name == 'nt':
169 wrapper_postfix = '.pyd'
170 else:
171 wrapper_postfix = '.so'
172
173 share_name = os.path.join(tmp_inst,py_wrapper_name+wrapper_postfix)
174
175 tmp4 = py_wrapper_local_env.InstallAs(target=share_name,
176 source=py_wrapper_lib[0])
177
178 env.Alias('target_install_finleycpp_so', tmp4)
179
180 # export the lib target since tests will depend on it
181 # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
182 # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
183 dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
184 Export('dep_lib')
185
186 # Call the python sconscript
187 env.SConscript(dirs = ['#/finley/py_src'], build_dir='py', duplicate=0)
188
189 # Call the unit tests SConscript
190 local_env.SConscript(dirs = ['#/finley/test'], build_dir='#/build/$PLATFORM/finley/test', duplicate=0)
191

  ViewVC Help
Powered by ViewVC 1.1.26