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

Annotation of /trunk/finley/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2031 - (hide annotations)
Wed Nov 12 08:02:33 2008 UTC (10 years, 11 months ago) by phornby
File size: 5088 byte(s)
Need finer control than INTERFACE_STATIC_LIB could exert. Now there is a
XXX_STATIC_LIB for each lib.


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

  ViewVC Help
Powered by ViewVC 1.1.26