~vcs-imports/escript-finley/trunk

« back to all changes in this revision

Viewing changes to doc/SConscript

  • Committer: jfenwick
  • Date: 2010-10-11 01:48:14 UTC
  • Revision ID: svn-v4:77569008-7704-0410-b7a0-a92fef0b09fd:trunk:3259
Merging dudley and scons updates from branches

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
#
12
12
########################################################
13
13
 
14
 
 
15
14
import os
16
15
Import('*')
17
16
 
 
17
haveGMSH=False  # do we have gmsh?
 
18
haveMPL=False   # do we have matplotlib?
 
19
haveGD=False    # does matplotlib have griddata?
18
20
 
19
 
haveGMSH=(os.system("gmsh -version")/256==0)    #Do we have gmsh installed?
20
 
haveMPL=False                                   #Do we have matplotlib?
21
 
haveGD=False                                    #Does the matplotlib have griddata?
 
21
# check for gmsh
 
22
try:
 
23
    import subprocess
 
24
    p=subprocess.Popen(['gmsh', '-version'], stderr=subprocess.PIPE)
 
25
    p.poll()
 
26
    haveGMSH=True
 
27
except OSError:
 
28
    print("gmsh not found")
22
29
 
23
30
mplmagicversion='0.98.5'
24
31
 
 
32
# check for matplotlib
25
33
try:
26
34
   import matplotlib
27
35
   haveMPL=True
32
40
   pass
33
41
 
34
42
if not haveMPL:
35
 
   print "matplotlib not found skipping some tests"
 
43
    print("matplotlib not found, skipping some tests")
36
44
else:
37
 
   if mplversion<mplmagicversion:
38
 
        print "matplotlib found but version too early. Some tests skipped."
39
 
 
40
 
if not haveGMSH:
41
 
   print "gmsh not found"
42
 
 
43
 
example_files_allow_mpi = [ ]
44
 
example_files_no_mpi = [ ]
45
 
example_deps = [ ]
 
45
    if mplversion<mplmagicversion:
 
46
        print("matplotlib found, but version too early. Some tests skipped.")
 
47
 
 
48
example_files_allow_mpi = []
 
49
example_files_no_mpi = []
 
50
example_deps = []
46
51
 
47
52
def sortOutExample(name, needsGMSH=False, needsMPL=False, needsMagicMPL=False, needsGD=False, allowsMPI=True):
48
 
     if needsMagicMPL: needsMPL=True
49
 
     if needsGD: needsMPL=True
50
 
     if needsGMSH: allowsMPI=False
51
 
 
52
 
     if (not needsGMSH or haveGMSH) and (not needsMPL or haveMPL) and (not needsMagicMPL or mplversion>=mplmagicversion) and (not needsGD or haveGD):
53
 
          if allowsMPI:
54
 
              example_files_allow_mpi.append(name)
55
 
          else:
56
 
              example_files_no_mpi.append(name)
57
 
     else:
58
 
          example_deps.append(name)
59
 
#
60
 
# these are the release examples in example sub directory:
 
53
    if needsMagicMPL: needsMPL=True
 
54
    if needsGD: needsMPL=True
 
55
    if needsGMSH: allowsMPI=False
 
56
 
 
57
    if (not needsGMSH or haveGMSH) and (not needsMPL or haveMPL) and (not needsMagicMPL or mplversion>=mplmagicversion) and (not needsGD or haveGD):
 
58
        if allowsMPI:
 
59
            example_files_allow_mpi.append(name)
 
60
        else:
 
61
            example_files_no_mpi.append(name)
 
62
    else:
 
63
        example_deps.append(name)
 
64
 
 
65
# these are the release examples in example subdirectory:
61
66
#
62
67
#_deps is for files which end in .py and are required for
63
68
# testing but should not be invoked directly themselves
64
69
 
65
 
sortOutExample( 'usersguide/lit_driven_cavity.py')
66
 
sortOutExample( 'usersguide/mount.py')
67
 
sortOutExample( 'usersguide/heatedblock.py')
68
 
sortOutExample( 'usersguide/helmholtz.py')
69
 
sortOutExample( 'usersguide/fluid.py')
70
 
sortOutExample( 'usersguide/poisson.py')
71
 
sortOutExample( 'usersguide/diffusion.py')
72
 
sortOutExample( 'usersguide/poisson_vtk.py')
73
 
sortOutExample( 'usersguide/slip.py')
74
 
sortOutExample( 'usersguide/int_save.py')
75
 
sortOutExample( 'usersguide/wave.py', needsMPL=True)
76
 
sortOutExample( 'usersguide/trapezoid.py', needsGMSH=True)
77
 
sortOutExample( 'usersguide/quad.py', needsGMSH=True)
78
 
sortOutExample( 'usersguide/brick.py', needsGMSH=True)
79
 
sortOutExample( 'usersguide/refine.py', needsGMSH=True)
80
 
sortOutExample( 'usersguide/poisson_matplotlib.py',  needsGD=True, allowsMPI=False)
 
70
sortOutExample('usersguide/lit_driven_cavity.py')
 
71
sortOutExample('usersguide/mount.py')
 
72
sortOutExample('usersguide/heatedblock.py')
 
73
sortOutExample('usersguide/helmholtz.py')
 
74
sortOutExample('usersguide/fluid.py')
 
75
sortOutExample('usersguide/poisson.py')
 
76
sortOutExample('usersguide/diffusion.py')
 
77
sortOutExample('usersguide/poisson_vtk.py')
 
78
sortOutExample('usersguide/slip.py')
 
79
sortOutExample('usersguide/int_save.py')
 
80
sortOutExample('usersguide/wave.py', needsMPL=True)
 
81
sortOutExample('usersguide/trapezoid.py', needsGMSH=True)
 
82
sortOutExample('usersguide/quad.py', needsGMSH=True)
 
83
sortOutExample('usersguide/brick.py', needsGMSH=True)
 
84
sortOutExample('usersguide/refine.py', needsGMSH=True)
 
85
sortOutExample('usersguide/poisson_matplotlib.py', needsGD=True, allowsMPI=False)
81
86
 
82
 
sortOutExample( 'geotutorial/steadystate_variablek.py')
83
 
sortOutExample( 'geotutorial/steadystate.py')
84
 
sortOutExample( 'geotutorial/forward_euler.py')
85
 
sortOutExample( 'geotutorial/myfirstscript.py')
86
 
sortOutExample( 'geotutorial/backward_euler.py')
 
87
sortOutExample('geotutorial/steadystate_variablek.py')
 
88
sortOutExample('geotutorial/steadystate.py')
 
89
sortOutExample('geotutorial/forward_euler.py')
 
90
sortOutExample('geotutorial/myfirstscript.py')
 
91
sortOutExample('geotutorial/backward_euler.py')
87
92
 
88
93
example_deps.append('cookbook/cblib.py')
89
94
sortOutExample('cookbook/example01a.py')
107
112
#sortOutExample('cookbook/example09a.py', needsMagicMPL=True, needsGMSH=True, allowsMPI=False)
108
113
#sortOutExample('cookbook/example09b.py', needsMagicMPL=True, needsGMSH=True, allowsMPI=False)
109
114
 
110
 
example_files= example_files_allow_mpi + example_files_no_mpi + example_deps
111
 
 
112
 
 
113
 
ex2=[ os.path.join("examples",str(x)) for x in example_files] 
114
 
 
115
 
#==========================================================================================
116
 
 
117
 
local_env = clone_env(env)
 
115
example_files = example_files_allow_mpi + example_files_no_mpi + example_deps
 
116
 
 
117
ex2=[os.path.join("examples", str(x)) for x in example_files]
 
118
 
 
119
#=============================================================================
 
120
 
 
121
local_env = env.Clone()
118
122
src_dir = local_env.Dir('.').srcnode().abspath
119
123
release_dir=local_env.Dir('#/release/doc/').srcnode().abspath
120
124
 
121
125
dir_cmd = "cd "+src_dir+" && "
122
126
 
123
 
tmp1 = local_env.Command("#/release/doc/escript_examples.zip", None, 
124
 
dir_cmd+"zip "+os.path.join(release_dir,"escript_examples.zip ") +" ".join(ex2),
125
 
#chdir=src_dir
126
 
)
 
127
tmp1 = local_env.Command("#/release/doc/escript_examples.zip", None, dir_cmd+"zip "+os.path.join(release_dir,"escript_examples.zip ") +" ".join(ex2))
127
128
env.Alias('examples_zipfile', tmp1)
128
129
 
129
 
 
130
 
#Need to use explicit tar rather than the tar builder due to problems getting it not to put
131
 
#unwanted path components in the tar file
132
 
#--transform on tar is not supported on savanna
133
 
tmp2 = local_env.Command("#/release/doc/escript_examples.tar.gz", None, dir_cmd+"tar -czf "+os.path.join(release_dir,"escript_examples.tar.gz ")+"  ".join(ex2),
134
 
# chdir=src_dir
135
 
)
 
130
# Need to use explicit tar rather than the tar builder due to problems getting
 
131
# it not to put unwanted path components in the tar file
 
132
# --transform on tar is not supported on savanna
 
133
tmp2 = local_env.Command("#/release/doc/escript_examples.tar.gz", None, dir_cmd+"tar -czf "+os.path.join(release_dir,"escript_examples.tar.gz ")+"  ".join(ex2))
136
134
env.Alias('examples_tarfile',tmp2)
137
135
 
138
136
#env=Environment(TARFLAGS = "-c -z",chdir=src_dir)
139
137
#if 'Tar' in dir(env): env.Tar('#/release/doc/escript_examples.tar.gz', example_files,chdir=src_dir)
140
138
#env.Alias('examples_tarfile', '#release/doc/escript_examples.tar.gz')
141
139
 
142
 
CallSConscript(local_env, dirs = ['#/doc/cookbook'], variant_dir='#/build/$PLATFORM/doc/cookbook', duplicate=1)
143
 
CallSConscript(local_env, dirs = ['#/doc/user'], variant_dir='#/build/$PLATFORM/doc/user', duplicate=1)
144
 
CallSConscript(local_env, dirs = ['#/doc/epydoc'], variant_dir='#/build/$PLATFORM/doc/epydoc', duplicate=1)
145
 
CallSConscript(local_env, dirs = ['#/doc/doxygen'], variant_dir='#/build/$PLATFORM/doc/doxygen', duplicate=1)
146
 
CallSConscript(local_env, dirs = ['#/doc/install'], variant_dir='#/build/$PLATFORM/doc/install', duplicate=1)
147
 
 
148
 
 
149
 
#For some reason my CallSConscript wrapper fails when you want to use the exports= keyword
150
 
if cantusevariantdir:
151
 
    local_env.SConscript(dirs = ['#/doc/examples'], build_dir='#/build/$PLATFORM/doc/examples', duplicate=1, exports=[ 'example_files_allow_mpi' , 'example_files_no_mpi', 'example_deps' ])
152
 
else:
153
 
    local_env.SConscript(dirs = ['#/doc/examples'], variant_dir='#/build/$PLATFORM/doc/examples', duplicate=1, exports=[ 'example_files_allow_mpi' , 'example_files_no_mpi', 'example_deps' ])
 
140
local_env.SConscript(dirs = ['#/doc/cookbook'], variant_dir='#/build/$PLATFORM/doc/cookbook', duplicate=1)
 
141
local_env.SConscript(dirs = ['#/doc/user'], variant_dir='#/build/$PLATFORM/doc/user', duplicate=1)
 
142
local_env.SConscript(dirs = ['#/doc/epydoc'], variant_dir='#/build/$PLATFORM/doc/epydoc', duplicate=1)
 
143
local_env.SConscript(dirs = ['#/doc/doxygen'], variant_dir='#/build/$PLATFORM/doc/doxygen', duplicate=1)
 
144
local_env.SConscript(dirs = ['#/doc/install'], variant_dir='#/build/$PLATFORM/doc/install', duplicate=1)
 
145
local_env.SConscript(dirs = ['#/doc/examples'], variant_dir='#/build/$PLATFORM/doc/examples', duplicate=1, exports=['example_files_allow_mpi', 'example_files_no_mpi', 'example_deps'])
 
146