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

Contents of /trunk/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1840 - (show annotations)
Fri Oct 3 03:16:11 2008 UTC (11 years ago) by phornby
File size: 3453 byte(s)
These now install the correct .pyd files on windows.
1
2 ########################################################
3 #
4 # Copyright (c) 2003-2008 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
15 import os
16 Import('*')
17
18 local_env = clone_env(env_mpi)
19 py_wrapper_local_env = clone_env(env_mpi)
20
21 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
22 del py_wrapper_local_env['SHLIBPREFIX']
23
24 sources = """
25 AbstractContinuousDomain.cpp
26 AbstractDomain.cpp
27 AbstractSystemMatrix.cpp
28 AbstractTransportProblem.cpp
29 Data.cpp
30 DataAbstract.cpp
31 DataBlocks2D.cpp
32 DataC.cpp
33 DataConstant.cpp
34 DataEmpty.cpp
35 DataException.cpp
36 DataExpanded.cpp
37 DataFactory.cpp
38 DataMaths.cpp
39 DataTagged.cpp
40 DataTypes.cpp
41 DataVector.cpp
42 DomainException.cpp
43 FunctionSpace.cpp
44 FunctionSpaceException.cpp
45 FunctionSpaceFactory.cpp
46 NullDomain.cpp
47 SystemMatrixException.cpp
48 Taipan.cpp
49 TransportProblemException.cpp
50 Utils.cpp
51 blocktimer.c
52 """.split()
53 headers = """
54 AbstractContinuousDomain.h
55 AbstractDomain.h
56 AbstractSystemMatrix.h
57 AbstractTransportProblem.h
58 BinaryOp.h
59 Data.h
60 DataAbstract.h
61 DataAlgorithm.h
62 DataBlocks2D.h
63 DataC.h
64 DataConstant.h
65 DataEmpty.h
66 DataException.h
67 DataExpanded.h
68 DataFactory.h
69 DataMaths.h
70 DataTagged.h
71 DataTypes.h
72 DataVector.h
73 DomainException.h
74 FunctionSpace.h
75 FunctionSpaceException.h
76 FunctionSpaceFactory.h
77 LocalOps.h
78 NullDomain.h
79 SystemMatrixException.h
80 Taipan.h
81 TransportProblemException.h
82 UnaryFuncs.h
83 UnaryOp.h
84 UtilC.h
85 Utils.h
86 blocktimer.h
87 esysmpi.h
88 system_dep.h
89 """.split()
90
91 local_env.Append(LIBS = [ 'esysUtils'] + env['sys_libs'] )
92 py_wrapper_local_env.Append(LIBS = [ 'escript', 'esysUtils'] + env['sys_libs'])
93
94 py_wrapper_name = 'escript'
95
96 lib = local_env.SharedLibrary(py_wrapper_name, sources)
97 env.Alias('target_escript_so', lib)
98
99 py_wrapper_lib = py_wrapper_local_env.SharedLibrary('escriptcpp', 'escriptcpp.cpp')
100 env.Alias('target_escriptcpp_so', py_wrapper_lib)
101
102 include_path = Dir('escript', local_env['incinstall'])
103
104 tmp1 = local_env.Install(include_path, headers )
105 env.Alias('target_install_escript_headers', [tmp1])
106
107 tmp3 = local_env.Install(local_env['libinstall'], lib)
108 env.Alias('target_install_escript_so', tmp3)
109
110 #windows specific mod
111 tmp_inst = os.path.join(local_env['pyinstall'],py_wrapper_name)
112 if os.name == 'nt':
113 wrapper_postfix = '.pyd'
114 source_lib = py_wrapper_lib[0]
115 else:
116 wrapper_postfix = '.so'
117 source_lib = py_wrapper_lib
118
119 share_name = os.path.join(tmp_inst,py_wrapper_name+wrapper_postfix)
120
121 tmp4 = py_wrapper_local_env.InstallAs(target=share_name, source=source_lib)
122
123 env.Alias('target_install_escriptcpp_so', tmp4)
124
125 # export the lib target since tests will depend on it
126 # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
127 # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
128 dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
129 Export('dep_lib')
130
131 # Call the python sconscript
132 env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
133
134 # Call the unit tests SConscript
135 local_env.SConscript(dirs = ['#/escript/test'], build_dir='#/build/$PLATFORM/escript/test', duplicate=0)
136

  ViewVC Help
Powered by ViewVC 1.1.26