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:
parent
8f16204390
commit
13e8fce173
@ -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
|
||||||
|
11
wmake/wclean
11
wmake/wclean
@ -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
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
64
wmake/wmake
64
wmake/wmake
@ -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
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user