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

Contents of /trunk/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2033 - (show annotations)
Wed Nov 12 08:14:11 2008 UTC (10 years, 7 months ago) by phornby
File size: 5157 byte(s)
As in the last message, add an extra CPPDEFINE to py_local_wrapper_env


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 py_wrapper_local_env.Append(CPPDEFINES = ['ESYSUTILS_STATIC_LIB'])
145
146 py_wrapper_local_env.Append(LIBS = ['finley', 'escript', 'esysUtils', 'paso'] + env['sys_libs'] )
147
148 module_name = 'finley'
149 py_wrapper_name = module_name + 'cpp'
150
151 lib = local_env.SharedLibrary(module_name, sources)
152 env.Alias('target_finley_so', lib)
153
154 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/finleycpp.cpp')
155 env.Alias('target_finleycpp_so', py_wrapper_lib)
156
157 include_path = Dir('finley', local_env['incinstall'])
158 cppadapter_include_path = Dir('CppAdapter', include_path)
159
160 tmp1 = local_env.Install(include_path, headers )
161 tmp2 = local_env.Install(cppadapter_include_path, cppadapter_headers )
162 env.Alias('target_install_finley_headers', [tmp1, tmp2])
163
164 tmp3 = local_env.Install(local_env['libinstall'], lib)
165 env.Alias('target_install_finley_so', tmp3)
166
167 #windows specific mod
168 tmp_inst = os.path.join(local_env['pyinstall'],module_name)
169 if os.name == 'nt':
170 wrapper_postfix = '.pyd'
171 else:
172 wrapper_postfix = '.so'
173
174 share_name = os.path.join(tmp_inst,py_wrapper_name+wrapper_postfix)
175
176 tmp4 = py_wrapper_local_env.InstallAs(target=share_name,
177 source=py_wrapper_lib[0])
178
179 env.Alias('target_install_finleycpp_so', tmp4)
180
181 # export the lib target since tests will depend on it
182 # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
183 # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
184 dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
185 Export('dep_lib')
186
187 # Call the python sconscript
188 env.SConscript(dirs = ['#/finley/py_src'], build_dir='py', duplicate=0)
189
190 # Call the unit tests SConscript
191 local_env.SConscript(dirs = ['#/finley/test'], build_dir='#/build/$PLATFORM/finley/test', duplicate=0)
192

  ViewVC Help
Powered by ViewVC 1.1.26