wmake: Use functions from wmakeFunctions to avoid code duplication

wclean: added support for automatic searching up the tree for the Make directory if in a sub-directory
This commit is contained in:
Henry Weller 2016-07-17 22:59:55 +01:00
parent 8f16204390
commit 13e8fce173
4 changed files with 66 additions and 63 deletions

View File

@ -35,7 +35,7 @@
checkEnv() checkEnv()
{ {
for envar in WM_OPTIONS WM_DIR WM_PROJECT_DIR for envar in WM_OPTIONS WM_LINK_LANGUAGE WM_DIR WM_PROJECT_DIR
do do
eval test "\$$envar" || { eval test "\$$envar" || {
echo "$Script error: environment variable \$$envar not set" 1>&2 echo "$Script error: environment variable \$$envar not set" 1>&2
@ -79,6 +79,32 @@ findTarget()
fi fi
} }
cdSource()
{
if [ ! -d $MakeDir ]
then
echo "$Script: '$MakeDir' directory does not exist in $PWD" 1>&2
echo " Searching up directories tree for Make directory"
findTarget .
targetType=
if [ "$dir" ]
then
cd $dir 2>/dev/null || {
echo "$Script error: could not change to directory '$dir'" 1>&2
exit 1
}
fi
fi
[ -r $MakeDir/files ] || {
echo "$Script error: file '$MakeDir/files' does not exist in $PWD" 1>&2
exit 1
}
}
findObjectDir() findObjectDir()
{ {
expandPath $WM_PROJECT_DIR expandPath $WM_PROJECT_DIR

View File

@ -127,6 +127,15 @@ then
fi fi
#------------------------------------------------------------------------------
# If target not specified search up the directory tree for the Make
# sub-directory, check the existance of the 'files' file and clean there if
# present
# ------------------------------------------------------------------------------
[ -n "$targetType" ] || cdSource
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Remove empty sub-directories and exit # Remove empty sub-directories and exit
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -267,7 +276,7 @@ fi
# Cleanup local variables and functions # Cleanup local variables and functions
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
unset Script usage unset Script usage MakeDir
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
# ========= | # ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | # \\ / O peration |
# \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
# \\/ M anipulation | # \\/ M anipulation |
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# License # License
@ -34,9 +34,17 @@
##------------------------------------------------------------------------------ ##------------------------------------------------------------------------------
Script=${0##*/} Script=${0##*/}
# Source the wmake functions
. ${0%/*}/scripts/wmakeFunctions
#------------------------------------------------------------------------------
# Parse arguments and options
#------------------------------------------------------------------------------
# Default to the CWD # Default to the CWD
if [ "$#" -eq 0 ] if [ "$#" -eq 0 ]
then then
# Add the CWD to the arguments
set -- . set -- .
elif [ "$1" = "-h" -o "$1" = "-help" ] elif [ "$1" = "-h" -o "$1" = "-help" ]
then then
@ -48,6 +56,20 @@ then
fi fi
#------------------------------------------------------------------------------
# Search up the directory tree for the Make sub-directory,
# check the existance of the 'files' file and clean there if present
#------------------------------------------------------------------------------
# Need to add an option or special logic to control cdSource
# MakeDir=Make
# cdSource
#------------------------------------------------------------------------------
# Search for all lnInclude directories and delete them
#------------------------------------------------------------------------------
for dir for dir
do do
if [ -d "$dir" ] if [ -d "$dir" ]
@ -64,7 +86,7 @@ done
# Cleanup local variables and functions # Cleanup local variables and functions
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
unset Script unset Script MakeDir
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -55,6 +55,9 @@
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
Script=${0##*/} Script=${0##*/}
# Source the wmake functions
. ${0%/*}/scripts/wmakeFunctions
usage() { usage() {
exec 1>&2 exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done while [ "$#" -ge 1 ]; do echo "$1"; shift; done
@ -192,14 +195,7 @@ done
# Check environment variables # Check environment variables
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
for envar in WM_OPTIONS WM_LINK_LANGUAGE WM_DIR checkEnv
do
eval test "\$$envar" || {
echo "$Script error: environment variable \$$envar not set" 1>&2
exit 1
}
done
# When compiling anything but a standalone exe WM_PROJECT and WM_PROJECT_DIR # When compiling anything but a standalone exe WM_PROJECT and WM_PROJECT_DIR
# must be set # must be set
@ -356,57 +352,7 @@ fi
# check the existance of the 'files' file and build there if present # check the existance of the 'files' file and build there if present
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
unset dir cdSource
expandPath()
{
dir=$(dirname $1)
cwd=$PWD
cd $dir
exPath=$PWD
cd $cwd
}
findTarget()
{
expandPath $1
if [ "$exPath" = "$WM_PROJECT_DIR" \
-o "$exPath" = "$HOME" \
-o "$exPath" = "/" \
]
then
echo "$Script error: could not find Make directory" 1>&2
elif [ -d "$1/Make" ]; then
echo " Found target directory " $1
dir=$1
else
findTarget "$1/.."
fi
}
if [ ! -d $MakeDir ]
then
echo "$Script: '$MakeDir' directory does not exist in $PWD" 1>&2
echo " Searching up directories tree for Make directory"
findTarget .
targetType=
if [ "$dir" ]
then
cd $dir 2>/dev/null || {
echo "$Script error: could not change to directory '$dir'" 1>&2
exit 1
}
fi
fi
[ -r $MakeDir/files ] || {
echo "$Script error: file '$MakeDir/files' does not exist in $PWD" 1>&2
exit 1
}
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------