- scripts/wmake.wmake-args partial logic for Allwmake scripts. - handle '-quiet' as synonym for '-silent' - Do not specify '-j' option for wrapped cmake creation to avoid the warning: make[1]: warning: -jN forced in submake: disabling jobserver mode.
175 lines
4.5 KiB
Bash
Executable File
175 lines
4.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#------------------------------------------------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | www.openfoam.com
|
|
# \\/ M anipulation |
|
|
#------------------------------------------------------------------------------
|
|
# Copyright (C) 2017-2020 OpenCFD Ltd.
|
|
#------------------------------------------------------------------------------
|
|
# License
|
|
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
|
#
|
|
# Script
|
|
# wmake/scripts/wcleanObjects
|
|
# Backend for "wclean -build", "wclean -platform"
|
|
#
|
|
# Usage
|
|
# wclean-build <option | platform> [.. <option | platform>]
|
|
#
|
|
# Description
|
|
# Deletes the specified 'build/' object files directories from 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
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
targetDir=build # Safe default - override based on script name
|
|
|
|
case "${0##*/}" 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'
|
|
-curr | -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>*)
|
|
-help Print the usage
|
|
|
|
Deletes specified $targetDir object file directories from project top-level:
|
|
Project: $WM_PROJECT_DIR
|
|
Directory: $targetDir/
|
|
|
|
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
|
|
done
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Run from OPENFOAM or THIRDPARTY top-level directory only
|
|
wmake -check-dir -quiet "$WM_PROJECT_DIR" 2>/dev/null || \
|
|
wmake -check-dir -quiet "$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
|
|
;;
|
|
-curr | -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
|
|
|
|
#------------------------------------------------------------------------------
|