mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-12-28 03:37:59 +00:00
91 lines
2.4 KiB
Bash
Executable File
91 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
cd ${0%/*} || exit 1 # Run from this directory
|
|
|
|
# Parse arguments for library compilation
|
|
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
|
|
|
|
: ${FOAM_EXT_LIBBIN:=/usr/lib$WM_COMPILER_LIB_ARCH} # Extra safety
|
|
export FOAM_EXT_LIBBIN
|
|
|
|
# Test for mgridgen.
|
|
# - return 0 and export MGRIDGEN_ARCH_PATH on success
|
|
hasMgridGen()
|
|
{
|
|
local warning="==> skip mgridgen"
|
|
|
|
unset MGRIDGEN_ARCH_PATH MGRIDGEN_VERSION
|
|
settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/mgridgen) || {
|
|
# ignore silently# echo "$warning (no config.sh/mgridgen settings)"
|
|
return 1
|
|
}
|
|
|
|
. $settings
|
|
if [ -z "$MGRIDGEN_ARCH_PATH" -o "${MGRIDGEN_ARCH_PATH##*-}" = none ]
|
|
then
|
|
# ignore silently# echo "$warning (not available)"
|
|
return 1
|
|
fi
|
|
|
|
# Header
|
|
local header=$MGRIDGEN_ARCH_PATH/include/mgridgen.h
|
|
[ -f "$header" ] || {
|
|
# ignore silently# echo "$warning (no header)"
|
|
return 2 # file not found
|
|
}
|
|
|
|
# Library
|
|
[ -r $FOAM_EXT_LIBBIN/libMGridGen.so ] || \
|
|
[ -r $MGRIDGEN_ARCH_PATH/lib/libmgrid.a ] || \
|
|
[ -r $MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmgrid.a ] || \
|
|
[ "${MGRIDGEN_ARCH_PATH##*-}" = system ] || {
|
|
# ignore silently# echo "$warning (missing library)"
|
|
return 2
|
|
}
|
|
|
|
# Ensure consistent sizes with OpenFOAM and mgridgen header
|
|
# Extract typedef for idxtype, realtype
|
|
local label=$(sed -ne \
|
|
's/^.*typedef *\([^ ]*\) *idxtype.*/\1/ip' \
|
|
"$header")
|
|
local scalar=$(sed -ne \
|
|
's/^.*typedef *\([^ ]*\) *realtype.*/\1/ip' \
|
|
"$header")
|
|
|
|
: ${label:=unknown}
|
|
: ${scalar:=unknown}
|
|
|
|
case "$WM_LABEL_SIZE:$label" in
|
|
(32:int32_t | 32:int | 64:int64_t | 64:long)
|
|
export MGRIDGEN_ARCH_PATH
|
|
;;
|
|
|
|
*)
|
|
echo "$warning (label='$WM_LABEL_SIZE', mgridgen.h has '$label')"
|
|
return 1
|
|
;;
|
|
esac
|
|
case "$WM_PRECISION_OPTION:$scalar" in
|
|
(SP:float | DP:double)
|
|
export MGRIDGEN_ARCH_PATH
|
|
;;
|
|
|
|
*)
|
|
echo "$warning (scalar='$WM_PRECISION_OPTION', mgridgen.h has '$scalar')"
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
# OK
|
|
echo "mgridgen (label=$label, scalar=$scalar) - $MGRIDGEN_ARCH_PATH"
|
|
|
|
}
|
|
|
|
if hasMgridGen
|
|
then
|
|
wmake $targetType MGridGenGamgAgglomeration
|
|
fi
|
|
|
|
wmake $targetType pairPatchAgglomeration
|
|
|
|
#------------------------------------------------------------------------------
|