- new behaviour is to do nothing if no platform was specified.
This helps avoid inadvertently removing files.
- support special platforms for compatibility with wmake/wclean targets.
Eg, "wcleanPlatform all"
- allow use from ThirdParty top-level as well, since the directory
structure is similar.
BUG: fix regression in wcleanLnIncludeAll introduced by 9e2e111518
138 lines
3.8 KiB
Bash
Executable File
138 lines
3.8 KiB
Bash
Executable File
#!/bin/sh
|
|
#------------------------------------------------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
|
|
# \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
|
|
#-------------------------------------------------------------------------------
|
|
# License
|
|
# This file is part of OpenFOAM.
|
|
#
|
|
# OpenFOAM is free software: you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
# for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# Script
|
|
# wcleanPlatform
|
|
#
|
|
# Usage
|
|
# wcleanPlatform <platform> [.. <platformN>]
|
|
#
|
|
# Description
|
|
# Deletes the specified 'platforms/' object files directories from the
|
|
# the project top-level 'platforms/' directory $WM_PROJECT_DIR.
|
|
#
|
|
# special platforms
|
|
# - 'all' removes all platforms, lnInclude directories and cleans tutorials.
|
|
# - '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.
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
Script=${0##*/}
|
|
|
|
usage() {
|
|
exec 1>&2
|
|
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
|
cat<<USAGE
|
|
|
|
Usage: $Script <platform> [.. <platformN>]
|
|
$Script -all | -compiler | -current [<platform> [.. <platformN>]]
|
|
|
|
options:
|
|
-a, -all Same as 'all'
|
|
-comp, -compiler Same as 'compiler'
|
|
-c, -current Same as 'current'
|
|
-h, -help Print the usage
|
|
|
|
|
|
Deletes the specified platforms/ object file directories from the project
|
|
top-level platforms/ directory $WM_PROJECT_DIR.
|
|
|
|
special platforms:
|
|
all Remove all platforms, lnInclude and clean tutorials
|
|
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
|
|
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"
|
|
else
|
|
echo "$# platform(s) to clean"
|
|
echo
|
|
fi
|
|
|
|
for name
|
|
do
|
|
case "$name" in
|
|
-comp | -compiler | compiler)
|
|
name="$WM_ARCH$WM_COMPILER"
|
|
;;
|
|
-c | -current | current)
|
|
name="$WM_OPTIONS"
|
|
;;
|
|
-a | -all | all)
|
|
echo "all platforms/ ..."
|
|
rm -rf platforms
|
|
wcleanLnIncludeAll .
|
|
[ -x tutorials/Allclean ] && tutorials/Allclean
|
|
echo
|
|
break # Can stop now
|
|
;;
|
|
esac
|
|
|
|
if [ -n "$name" -d "build/$name" ]
|
|
then
|
|
echo " '$name'"
|
|
rm -rf "platforms/$name"*
|
|
echo
|
|
else
|
|
echo " '$name' - not built"
|
|
echo
|
|
fi
|
|
done
|
|
|
|
exit 0 # clean exit
|
|
|
|
#------------------------------------------------------------------------------
|