/[escript]/branches/domexper/finley/src/SConscript
ViewVC logotype

Contents of /branches/domexper/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3251 - (show annotations)
Thu Oct 7 04:02:30 2010 UTC (8 years, 7 months ago) by jfenwick
File size: 5038 byte(s)
Merged sconcript changes - weipa doesn't build unit test binary
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_mpi.Clone()
18 py_wrapper_local_env = env_mpi.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_Single2_1D.c
32 Assemble_PDE_Single2_2D.c
33 Assemble_PDE_Single2_3D.c
34 Assemble_PDE_Single2_C.c
35 Assemble_PDE_System2_1D.c
36 Assemble_PDE_System2_2D.c
37 Assemble_PDE_System2_3D.c
38 Assemble_PDE_System2_C.c
39 Assemble_addToSystemMatrix.c
40 Assemble_getAssembleParameters.c
41 Assemble_getSize.c
42 Assemble_gradient.c
43 Assemble_integrate.c
44 Assemble_interpolate.c
45 Assemble_jacobeans.c
46 Assemble_setNormal.c
47 ElementFile.c
48 ElementFile_allocTable.c
49 ElementFile_copyTable.c
50 ElementFile_createColoring.c
51 ElementFile_distributeByRankOfDOF.c
52 ElementFile_gather.c
53 ElementFile_jacobeans.c
54 ElementFile_markNodes.c
55 ElementFile_optimizeOrdering.c
56 ElementFile_relableNodes.c
57 ElementFile_scatter.c
58 ElementFile_setCoordinates.c
59 ElementFile_setNodeRange.c
60 ElementFile_setTags.c
61 Finley.c
62 IndexList.c
63 Mesh.c
64 Mesh_createNodeFileMappings.c
65 Mesh_distributeByRankOfDOF.c
66 Mesh_findMatchingFaces.c
67 Mesh_getPattern.c
68 Mesh_glueFaces.c
69 Mesh_hex20.c
70 Mesh_hex8.c
71 Mesh_joinFaces.c
72 Mesh_markNodes.c
73 Mesh_merge.c
74 Mesh_optimizeDOFDistribution.c
75 Mesh_optimizeDOFLabeling.c
76 Mesh_prepare.c
77 Mesh_print.c
78 Mesh_read.c
79 Mesh_readGmsh.c
80 Mesh_rec4.c
81 Mesh_rec8.c
82 Mesh_relableElementNodes.c
83 Mesh_resolveNodeIds.c
84 Mesh_saveDX.c
85 Mesh_saveVTK.c
86 Mesh_setCoordinates.c
87 Mesh_tagmaps.c
88 Mesh_write.c
89 NodeFile.c
90 NodeFile_allocTable.c
91 NodeFile_copyTable.c
92 NodeFile_createDenseLabelings.c
93 NodeFile_gather.c
94 NodeFile_scatter.c
95 NodeFile_setCoordinates.c
96 NodeFile_setIdRange.c
97 NodeFile_setTags.c
98 NodeMapping.c
99 Quadrature.c
100 ReferenceElements.c
101 ShapeFunctions.c
102 TagMap.c
103 Util.c
104 ReferenceElementSets.c
105 CPPAdapter/FinleyAdapterException.cpp
106 CPPAdapter/FinleyError.cpp
107 CPPAdapter/MeshAdapter.cpp
108 CPPAdapter/MeshAdapterFactory.cpp
109 CPPAdapter/SystemMatrixAdapter.cpp
110 CPPAdapter/TransportProblemAdapter.cpp
111 """.split()
112
113 headers = """
114 Assemble.h
115 ElementFile.h
116 Finley.h
117 FinleyVersion.h
118 IndexList.h
119 Mesh.h
120 NodeFile.h
121 NodeMapping.h
122 Quadrature.h
123 RectangularMesh.h
124 ReferenceElements.h
125 ShapeFunctions.h
126 TagMap.h
127 Util.h
128 ReferenceElementSets.h
129 vtkCellType.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/$PLATFORM/finley/test', duplicate=0, exports=['py_wrapper_lib'])
183

  ViewVC Help
Powered by ViewVC 1.1.26