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

Contents of /trunk/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1705 - (show annotations)
Thu Aug 14 05:56:40 2008 UTC (10 years, 8 months ago) by ksteube
File size: 4828 byte(s)
Branch scons-dev is hereby closed.
Some parts of scons scripts have been re-written.

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

  ViewVC Help
Powered by ViewVC 1.1.26