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

Contents of /trunk/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3522 - (show annotations)
Tue May 24 00:57:58 2011 UTC (8 years, 1 month ago) by gross
File size: 5043 byte(s)
(almost) full support for Point elements
1
2 ########################################################
3 #
4 # Copyright (c) 2003-2010 by University of Queensland
5 # Earth Systems Science Computational Center (ESSCC)
6 # http://www.uq.edu.au/esscc
7 #
8 # Primary Business: Queensland, Australia
9 # Licensed under the Open Software License version 3.0
10 # http://www.opensource.org/licenses/osl-3.0.php
11 #
12 ########################################################
13
14 import os
15 Import('*')
16
17 local_env = env.Clone()
18 py_wrapper_local_env = env.Clone()
19
20 # Remove the sharedlibrary prefix on all platform - we don't want 'lib'
21 # mucking with our python modules
22 del py_wrapper_local_env['SHLIBPREFIX']
23
24 sources = """
25 Assemble_AverageElementData.c
26 Assemble_CopyElementData.c
27 Assemble_CopyNodalData.c
28 Assemble_LumpedSystem.c
29 Assemble_NodeCoordinates.c
30 Assemble_PDE.c
31 Assemble_PDE_Points.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_setCoordinates.c
87 Mesh_tagmaps.c
88 Mesh_addPoints.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 ReferenceElementSets.c
106 CPPAdapter/FinleyAdapterException.cpp
107 CPPAdapter/FinleyError.cpp
108 CPPAdapter/MeshAdapter.cpp
109 CPPAdapter/MeshAdapterFactory.cpp
110 CPPAdapter/SystemMatrixAdapter.cpp
111 CPPAdapter/TransportProblemAdapter.cpp
112 """.split()
113
114 headers = """
115 Assemble.h
116 ElementFile.h
117 Finley.h
118 FinleyVersion.h
119 IndexList.h
120 Mesh.h
121 NodeFile.h
122 NodeMapping.h
123 Quadrature.h
124 RectangularMesh.h
125 ReferenceElements.h
126 ShapeFunctions.h
127 TagMap.h
128 Util.h
129 ReferenceElementSets.h
130 """.split()
131
132 cppadapter_headers = """
133 CPPAdapter/FinleyAdapterException.h
134 CPPAdapter/FinleyError.h
135 CPPAdapter/MeshAdapter.h
136 CPPAdapter/MeshAdapterFactory.h
137 CPPAdapter/SystemMatrixAdapter.h
138 CPPAdapter/TransportProblemAdapter.h
139 CPPAdapter/system_dep.h
140 """.split()
141
142 local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'])
143 if IS_WINDOWS:
144 local_env.Append(CPPDEFINES = ['FINLEY_EXPORTS'])
145
146 module_name = 'finley'
147
148 lib = local_env.SharedLibrary(module_name, sources)
149 env.Alias('build_finley_lib', lib)
150
151 include_path = Dir('finley', local_env['incinstall'])
152 cppadapter_include_path = Dir('CppAdapter', include_path)
153
154 hdr_inst1 = local_env.Install(include_path, headers)
155 hdr_inst2 = local_env.Install(cppadapter_include_path, cppadapter_headers)
156 env.Alias('install_finley_headers', [hdr_inst1, hdr_inst2])
157
158 lib_inst = local_env.Install(local_env['libinstall'], lib)
159 env.Alias('install_finley_lib', lib_inst)
160
161 ### Python wrapper ###
162 py_wrapper_local_env.Append(LIBS = ['finley', 'escript', 'esysUtils', 'paso'])
163 py_wrapper_name = module_name + 'cpp'
164 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/finleycpp.cpp')
165 env.Alias('build_finleycpp_lib', py_wrapper_lib)
166
167 tmp_inst = os.path.join(local_env['pyinstall'], module_name)
168 if IS_WINDOWS:
169 wrapper_ext = '.pyd'
170 else:
171 wrapper_ext = '.so'
172
173 share_name = os.path.join(tmp_inst, py_wrapper_name+wrapper_ext)
174 mod_inst = py_wrapper_local_env.InstallAs(target=share_name,
175 source=py_wrapper_lib[0])
176 env.Alias('install_finleycpp_lib', mod_inst)
177
178 # configure python module
179 local_env.SConscript(dirs = ['#/finley/py_src'], variant_dir='py', duplicate=0)
180
181 # configure unit tests
182 local_env.SConscript(dirs = ['#/finley/test'], variant_dir='$BUILD_DIR/$PLATFORM/finley/test', duplicate=0, exports=['py_wrapper_lib'])
183

  ViewVC Help
Powered by ViewVC 1.1.26