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

Annotation of /trunk/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2895 - (hide annotations)
Fri Jan 29 04:58:16 2010 UTC (9 years, 4 months ago) by caltinay
File size: 5069 byte(s)
Moved finley's system_dep.h file up to the C level to be able to export two
functions that are used by the dataexporter. Changed include paths and C++
style comments accordingly.

1 ksteube 1811
2 phornby 1847
3 ksteube 1811 ########################################################
4 gross 707 #
5 jfenwick 2881 # Copyright (c) 2003-2010 by University of Queensland
6 ksteube 1811 # Earth Systems Science Computational Center (ESSCC)
7     # http://www.uq.edu.au/esscc
8 ksteube 1705 #
9 ksteube 1811 # 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 ksteube 1705 #
13 ksteube 1811 ########################################################
14 ksteube 1705
15 ksteube 1811
16 gross 700 import os
17 jgs 182 Import('*')
18    
19 ksteube 1705 local_env = clone_env(env_mpi)
20     py_wrapper_local_env = clone_env(env_mpi)
21    
22 robwdcock 682 # 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 jgs 182
25 ksteube 1705 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 gross 2748 ReferenceElementSets.c
106 gross 2484 CPPAdapter/FinleyAdapterException.cpp
107 ksteube 1705 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 gross 2748 ReferenceElementSets.h
129 caltinay 2895 system_dep.h
130 ksteube 1705 vtkCellType.h
131     """.split()
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     """.split()
140 jgs 277
141 ksteube 1705 local_env.Append(LIBS = ['escript', 'esysUtils', 'paso'] + env['sys_libs'] )
142 phornby 2027
143     if IS_WINDOWS_PLATFORM :
144 phornby 2041 local_env.Append(CPPDEFINES = ['FINLEY_EXPORTS'])
145 phornby 2027
146 ksteube 1705 py_wrapper_local_env.Append(LIBS = ['finley', 'escript', 'esysUtils', 'paso'] + env['sys_libs'] )
147 jgs 182
148 phornby 1847 module_name = 'finley'
149     py_wrapper_name = module_name + 'cpp'
150    
151     lib = local_env.SharedLibrary(module_name, sources)
152 ksteube 1705 env.Alias('target_finley_so', lib)
153 jgs 277
154 phornby 1847 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'CPPAdapter/finleycpp.cpp')
155 ksteube 1705 env.Alias('target_finleycpp_so', py_wrapper_lib)
156 jgs 277
157 ksteube 1705 include_path = Dir('finley', local_env['incinstall'])
158     cppadapter_include_path = Dir('CppAdapter', include_path)
159 jgs 190
160 ksteube 1705 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 jgs 481
164 ksteube 1705 tmp3 = local_env.Install(local_env['libinstall'], lib)
165     env.Alias('target_install_finley_so', tmp3)
166 gross 806
167 trankine 1428 #windows specific mod
168 phornby 1847 tmp_inst = os.path.join(local_env['pyinstall'],module_name)
169 trankine 1428 if os.name == 'nt':
170 phornby 1840 wrapper_postfix = '.pyd'
171 ksteube 1705 else:
172 phornby 1840 wrapper_postfix = '.so'
173    
174 phornby 1847 share_name = os.path.join(tmp_inst,py_wrapper_name+wrapper_postfix)
175 phornby 1840
176 phornby 1847 tmp4 = py_wrapper_local_env.InstallAs(target=share_name,
177     source=py_wrapper_lib[0])
178 phornby 1840
179 ksteube 1705 env.Alias('target_install_finleycpp_so', tmp4)
180 trankine 1428
181 robwdcock 682 # 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 ksteube 1705 dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
185 robwdcock 682 Export('dep_lib')
186 jgs 277
187 robwdcock 682 # Call the python sconscript
188     env.SConscript(dirs = ['#/finley/py_src'], build_dir='py', duplicate=0)
189 jgs 277
190 robwdcock 682 # Call the unit tests SConscript
191     local_env.SConscript(dirs = ['#/finley/test'], build_dir='#/build/$PLATFORM/finley/test', duplicate=0)
192 jgs 481

  ViewVC Help
Powered by ViewVC 1.1.26