An error occurred while loading the file. Please try again.
-
Mark Olesen authored
- 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 9e2e1115
60574799
wcleanPlatform 3.81 KiB
#!/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
#------------------------------------------------------------------------------