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

Annotation of /trunk/escript/src/SConscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2027 - (hide annotations)
Tue Nov 11 02:52:24 2008 UTC (10 years, 11 months ago) by phornby
File size: 3645 byte(s)
Ensure ESCRIPT_EXPORTS is defined only while compiling escript on windows.
A similar comment applies to FINLEY_EXPORTS.

SConstruct:
Fixed a comment.
reformatted the Export() call, and added IS_WINDOWS_PLATFORM to the exports.
1 ksteube 1811 ########################################################
2 ksteube 1705 #
3 ksteube 1811 # Copyright (c) 2003-2008 by University of Queensland
4     # Earth Systems Science Computational Center (ESSCC)
5     # http://www.uq.edu.au/esscc
6 ksteube 1705 #
7 ksteube 1811 # Primary Business: Queensland, Australia
8     # Licensed under the Open Software License version 3.0
9     # http://www.opensource.org/licenses/osl-3.0.php
10 ksteube 1705 #
11 ksteube 1811 ########################################################
12 ksteube 1705
13 ksteube 1811
14 gross 700 import os
15 jgs 181 Import('*')
16    
17 ksteube 1705 local_env = clone_env(env_mpi)
18     py_wrapper_local_env = clone_env(env_mpi)
19    
20 robwdcock 682 # Remove the sharedlibrary prefix on all platform - we don't want 'lib' mucking with our python modules
21     del py_wrapper_local_env['SHLIBPREFIX']
22 jgs 181
23 ksteube 1705 sources = """
24     AbstractContinuousDomain.cpp
25     AbstractDomain.cpp
26     AbstractSystemMatrix.cpp
27     AbstractTransportProblem.cpp
28     Data.cpp
29     DataAbstract.cpp
30     DataBlocks2D.cpp
31     DataC.cpp
32     DataConstant.cpp
33     DataEmpty.cpp
34     DataException.cpp
35     DataExpanded.cpp
36     DataFactory.cpp
37 jfenwick 2005 DataLazy.cpp
38 jfenwick 1796 DataMaths.cpp
39 jfenwick 2005 DataReady.cpp
40 ksteube 1705 DataTagged.cpp
41 jfenwick 1796 DataTypes.cpp
42 ksteube 1705 DataVector.cpp
43     DomainException.cpp
44 jfenwick 1897 EscriptParams.cpp
45 ksteube 1705 FunctionSpace.cpp
46     FunctionSpaceException.cpp
47     FunctionSpaceFactory.cpp
48     NullDomain.cpp
49     SystemMatrixException.cpp
50     Taipan.cpp
51     TransportProblemException.cpp
52     Utils.cpp
53     blocktimer.c
54     """.split()
55     headers = """
56     AbstractContinuousDomain.h
57     AbstractDomain.h
58     AbstractSystemMatrix.h
59     AbstractTransportProblem.h
60     BinaryOp.h
61     Data.h
62     DataAbstract.h
63     DataAlgorithm.h
64     DataBlocks2D.h
65     DataC.h
66     DataConstant.h
67     DataEmpty.h
68     DataException.h
69     DataExpanded.h
70     DataFactory.h
71 jfenwick 2005 DataLazy.h
72 jfenwick 1796 DataMaths.h
73 jfenwick 2005 DataReady.h
74 ksteube 1705 DataTagged.h
75 jfenwick 1796 DataTypes.h
76 ksteube 1705 DataVector.h
77     DomainException.h
78 jfenwick 1897 EscriptParams.h
79 ksteube 1705 FunctionSpace.h
80     FunctionSpaceException.h
81     FunctionSpaceFactory.h
82     LocalOps.h
83     NullDomain.h
84 jfenwick 1872 Pointers.h
85 ksteube 1705 SystemMatrixException.h
86     Taipan.h
87     TransportProblemException.h
88     UnaryFuncs.h
89     UnaryOp.h
90     UtilC.h
91     Utils.h
92     blocktimer.h
93     esysmpi.h
94     system_dep.h
95     """.split()
96 jgs 277
97 ksteube 1705 local_env.Append(LIBS = [ 'esysUtils'] + env['sys_libs'] )
98 phornby 2027
99     if IS_WINDOWS_PLATFORM :
100     local_env.Append(CPPDEFINES = ['ESCRIPT_EXPORTS'])
101    
102 ksteube 1705 py_wrapper_local_env.Append(LIBS = [ 'escript', 'esysUtils'] + env['sys_libs'])
103 jgs 181
104 phornby 1847 module_name = 'escript'
105     py_wrapper_name = module_name + 'cpp'
106 phornby 1840
107 phornby 1847 lib = local_env.SharedLibrary(module_name, sources)
108 ksteube 1705 env.Alias('target_escript_so', lib)
109 gross 700
110 phornby 1847 py_wrapper_lib = py_wrapper_local_env.SharedLibrary(py_wrapper_name, 'escriptcpp.cpp')
111 ksteube 1705 env.Alias('target_escriptcpp_so', py_wrapper_lib)
112 jgs 277
113 ksteube 1705 include_path = Dir('escript', local_env['incinstall'])
114 jgs 190
115 ksteube 1705 tmp1 = local_env.Install(include_path, headers )
116     env.Alias('target_install_escript_headers', [tmp1])
117 ksteube 1312
118 ksteube 1705 tmp3 = local_env.Install(local_env['libinstall'], lib)
119     env.Alias('target_install_escript_so', tmp3)
120 woo409 757
121 trankine 1428 #windows specific mod
122 phornby 1847 tmp_inst = os.path.join(local_env['pyinstall'],module_name)
123 trankine 1428 if os.name == 'nt':
124 phornby 1840 wrapper_postfix = '.pyd'
125 ksteube 1705 else:
126 phornby 1840 wrapper_postfix = '.so'
127    
128 phornby 1847 share_name = os.path.join(tmp_inst,py_wrapper_name+wrapper_postfix)
129 phornby 1840
130 phornby 1847 tmp4 = py_wrapper_local_env.InstallAs(target=share_name,
131     source=py_wrapper_lib[0])
132 phornby 1840
133 ksteube 1705 env.Alias('target_install_escriptcpp_so', tmp4)
134 trankine 1428
135 robwdcock 682 # export the lib target since tests will depend on it
136     # the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb)
137     # FIXME: This list handling produces the desired result but can this be done directly with scons File nodes?
138 ksteube 1705 dep_lib = [local_env['libinstall']+'/'+str(x) for x in lib]
139 robwdcock 682 Export('dep_lib')
140 jgs 277
141 robwdcock 682 # Call the python sconscript
142     env.SConscript(dirs = ['#/escript/py_src'], build_dir='py', duplicate=0)
143 jgs 277
144 robwdcock 682 # Call the unit tests SConscript
145     local_env.SConscript(dirs = ['#/escript/test'], build_dir='#/build/$PLATFORM/escript/test', duplicate=0)
146 ksteube 1705

  ViewVC Help
Powered by ViewVC 1.1.26