Files
openfoam/wmake/scripts/sysFunctions
2019-04-12 11:02:30 +02:00

141 lines
3.3 KiB
Bash

#----------------------------------*-sh-*--------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2018-2019 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, licensed under GNU General Public License
# <http://www.gnu.org/licenses/>.
#
# Script
# sysFunctions
#
# Description
# General system helper functions
#
# Functions provided
# isDarwin
# isNone
# isSystem
# isAbsdir, hasAbsdir
# findFirstFile
# thirdExtLib
#
# Variables provided
# extLiba
# extLibso
#
#------------------------------------------------------------------------------
if [ -z "$WMAKE_SCRIPTS_SYSFUNCTIONS" ]
then
# Load once, but do not rely on this variable elsewhere
WMAKE_SCRIPTS_SYSFUNCTIONS=loaded
# Static library extension (default=".a")
extLiba=".a"
# Shared library extension (default=".so")
extLibso=".so"
# Adjustments
case "$(uname -s 2>/dev/null)" in
Darwin)
extLibso=".dylib"
;;
*)
## Other. Eg, extLibso=".dll" or extLibso=".dll.a"
;;
esac
# True if target OS is Darwin.
# Uses cached value from libso extension
isDarwin()
{
test "$extLibso" = ".dylib"
}
# True if target OS is Windows
# Uses cached value from libso extension
isWindows()
{
test "$extLibso" = ".dll" || "$extLibso" = ".dll.a"
}
# True if '$1' begins with '/'
isAbsdir()
{
test "$1" = "/${1#/}"
}
# True if '$1' begins with '/' and also exists as a directory
hasAbsdir()
{
test "$1" = "/${1#/}" -a -d "$1"
}
# True if '$1' is an empty string, "none" or ends in "-none"
# Eg,
# if isNone "$BOOST_ARCH_PATH" ...
isNone()
{
test -z "$1" -o "${1##*-}" = none
}
# True if '$1' is "system" or ends in "-system"
# Eg,
# if isSystem "$BOOST_ARCH_PATH"
isSystem()
{
test "${1##*-}" = system
}
# Check for the existence of any of the files
# On success, echoes the file found and returns 0, otherwise returns 2
findFirstFile()
{
local file
for file
do
if [ -f "$file" -a -r "$file" ]
then
echo "$file"
return 0
fi
done
return 2
}
# Check for existence of file in FOAM_EXT_LIBBIN,
# but not if either file or FOAM_EXT_LIBBIN are empty or
# if the FOAM_EXT_LIBBIN is not located in the ThirdParty directory
#
# On success, echoes the resolved file and returns 0, otherwise returns 2
thirdExtLib()
{
local file="$FOAM_EXT_LIBBIN/$1"
if [ -n "$1" ] && \
[ -n "$FOAM_EXT_LIBBIN" ] && \
[ -n "$WM_THIRD_PARTY_DIR" ] && \
[ -f "$file" -a -r "$file" ] && \
[ "${FOAM_EXT_LIBBIN#$WM_THIRD_PARTY_DIR}" != "$FOAM_EXT_LIBBIN" ]
then
echo "$file"
else
return 2
fi
}
fi
#------------------------------------------------------------------------------