Newer
Older
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2017 OpenCFD Ltd.
# \\/ M anipulation |
#-------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, licensed under GNU General Public License
# <http://www.gnu.org/licenses/>.
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#
# Script
# wcleanBuild
#
# Usage
# wcleanBuild <option | platform> [.. <option | platform>]
#
# Description
# Deletes the specified 'build/' object files directories from the
# the project top-level 'build/' directory $WM_PROJECT_DIR.
#
# special platforms
# - 'all' removes all platforms.
# - 'compiler' corresponds to $WM_ARCH$WM_COMPILER.
# - 'current' corresponds to $WM_OPTIONS.
#
# You must be in the project or the third-party top-level directory
# to run this script.
#
# When called as wcleanPlatform, the target directory changes to
# 'platforms/ and the 'all' target also cleans up lnInclude dirs and
# tutorials
#
#------------------------------------------------------------------------------
Script="${0##*/}"
targetDir=build # Safe default - override based on script name
case "$Script" in
(*[Pp]latform*)
targetDir=platforms
;;
esac
usage() {
local extraText
if [ "$targetDir" = platforms ]
then
extraText=", lnInclude and clean tutorials"
fi
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
Usage: ${0##*/} <option | platform> [.. <option | platform>]
options:
-a, -all Same as 'all'
-c, -current Use \$WM_OPTIONS ($WM_OPTIONS)
-comp, -compiler Use \$WM_ARCH\$WM_COMPILER* ($WM_ARCH$WM_COMPILER)
-compiler=NAME Use \$WM_ARCH<NAME>* ($WM_ARCH<NAME>*)
-h, -help Print the usage
Deletes the specified $targetDir/ object file directories from the project
top-level $targetDir/ directory $WM_PROJECT_DIR.
special platforms:
all Remove all platforms$extraText
compiler $WM_ARCH$WM_COMPILER (ie, \$WM_ARCH\$WM_COMPILER)
current $WM_OPTIONS (ie, \$WM_OPTIONS)
You must be in the project or the third-party top-level directory
to run this script.
USAGE
exit 1
}
# Find -help anywhere
for i
do
case "$i" in (-h | -help*) usage ;; esac
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
done
#------------------------------------------------------------------------------
# Run from OPENFOAM or THIRDPARTY top-level directory only
wmakeCheckPwd -q "$WM_PROJECT_DIR" 2>/dev/null || \
wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || \
{
cat<<ERROR
${0##*/}: Error incorrect top-level directory
Not in Project: $WM_PROJECT_DIR
Nor in ThirdParty: $WM_THIRD_PARTY_DIR
ERROR
exit 1
}
if [ "$#" -eq 0 ]
then
usage "No platform specified to clean from $targetDir"
else
echo "$# platform(s) to clean from $targetDir"
echo
fi
for name
do
unset compiler
case "$name" in
-a | -all | all)
echo "all $targetDir/ ..."
rm -rf $targetDir
if [ "$targetDir" = platforms ]
then
wcleanLnIncludeAll .
[ -x tutorials/Allclean ] && tutorials/Allclean
fi
echo
break # Removed everything - can stop now
;;
-c | -current | current)
name="$WM_OPTIONS"
;;
-comp | -compiler | compiler)
compiler="$WM_COMPILER"
unset name
;;
-compiler=*)
compiler="${name#*=}"
unset name
;;
esac
if [ -n "$compiler" ]
then
name="$WM_ARCH$compiler"
dirs=$(find $targetDir -maxdepth 1 -name "${name}*")
if [ -n "$dirs" ]
then
for name in $dirs
do
echo " '$name'"
rm -rf "$name"
done
echo
else
echo " '$name' - not built or already cleaned"
echo
fi
elif [ -n "$name" ]
then
if [ -d "$targetDir/$name" ]
then
echo " '$name'"
rm -rf "$targetDir/$name"*
echo
else
echo " '$name' - not built or already cleaned"
echo
fi
fi
done
exit 0 # clean exit
#------------------------------------------------------------------------------