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

Contents of /trunk/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1847 - (show annotations)
Fri Oct 3 06:45:34 2008 UTC (10 years, 9 months ago) by phornby
File size: 4952 byte(s)
OK, these get the blahcpp.so names correct now.


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

  ViewVC Help
Powered by ViewVC 1.1.26