Newer
Older
#----------------------------------*-sh-*--------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\/ M anipulation |
#------------------------------------------------------------------------------
# Copyright (C) 2016-2024 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
Mark Olesen
committed
# File
# - sourced by OpenFOAM-*/etc/bashrc or via foamPV alias
# Setup for PARAVIEW (partially QT too)
# To disable use of the PV_PLUGIN_PATH:
# ParaView_VERSION=none
#
# For system-wide installations:
# cmake_version=cmake-system
# ParaView_QT=qt-system
# ParaView_VERSION=system [EXPERIMENTAL]
# The following env. variables are required for building plugins:
# ParaView_DIR
# PV_PLUGIN_PATH
# The OpenFOAM plugin must be the first in PV_PLUGIN_PATH and have
# paraview-major.minor encoded in its name.
# For central installations not located under ThirdParty, the environment
# values must be set manually. For example,
# export ParaView_DIR=/opt/paraview/paraview-5.6.0
# export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-5.6
#
# export PATH=$ParaView_DIR/bin:$PATH
# export LD_LIBRARY_PATH=$ParaView_DIR/lib:$LD_LIBRARY_PATH
# unset ParaView_VERSION # skip ThirdParty settings
# In paraview-5.4 and earlier, the libraries were in the sub-directory:
# export LD_LIBRARY_PATH=$ParaView_DIR/lib/paraview-5.4:$LD_LIBRARY_PATH
# Note
# When _foamAddLib is unset (eg, called from makeParaView or from foamPV):
# - the ParaView_VERSION variable is retained.
#
# Additional Notes
# PV_PLUGIN_PATH is *only* set if the directory actually exists.
#
#------------------------------------------------------------------------------
# USER EDITABLE PART: Changes made here may be lost with the next upgrade
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------
pv_api=auto # Either auto or pair of (major.minor) digits
# Compiler-specific location for ThirdParty installations
archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER"
eval \
"$($WM_PROJECT_DIR/bin/foamCleanPath -sh-path \
$ParaView_DIR $archDir/ParaView- $archDir/qt-)"
eval \
"$($WM_PROJECT_DIR/bin/foamCleanPath -sh-lib \
$ParaView_DIR $archDir/ParaView- $archDir/qt-)"
# Darwin
case "$WM_ARCH" in
(darwin*)
export DYLD_LIBRARY_PATH="${FOAM_LD_LIBRARY_PATH}" ;;
esac
# Evaluate command-line parameters for ParaView
# name=value -> export name=value
eval "export $i"
;;
esac
done
case "$ParaView_VERSION" in
('')
# empty - do nothing
;;
(none)
unset ParaView_DIR PV_PLUGIN_PATH
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
then
echo "Using paraview (disabled)" 1>&2
fi
;;
(system)
unset ParaView_DIR PV_PLUGIN_PATH
eval "$($WM_PROJECT_DIR/bin/foamEtcFile -sh -config paraview-system)"
;;
(*)
# ParaView_VERSION set and non-empty
unset ParaView_DIR PV_PLUGIN_PATH
# Set API to correspond to VERSION
# pv_api is <digits>.<digits> from ParaView_VERSION
case "$ParaView_VERSION" in
# API and VERSION appear to correspond
# Extract API (major.minor) from VERSION
pv_api=$(echo "$ParaView_VERSION" | \
sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p')
;;
esac
export ParaView_DIR="$archDir/ParaView-$ParaView_VERSION"
pv_plugin_dir="$FOAM_LIBBIN/paraview-$pv_api"
# Set paths if binaries are present
# QT libraries as required, and Qt5_DIR for the root directory.
# Another possibility: "qtpaths --qt-version"
qtDir="$archDir/$ParaView_QT"
if [ -d "$qtDir" ]
then
for libDir in "lib$WM_COMPILER_LIB_ARCH" "lib"
if [ -d "$qtDir/$libDir" ]
break
fi
done
fi
# ParaView libraries
# - 5.4 and earlier: lib/paraview-X.X
# - 5.5 and later: lib/, but could also be lib64/
for libDir in "lib$WM_COMPILER_LIB_ARCH" "lib"
do
pvLibDir="$libDir/paraview-$pv_api"
if [ -d "$ParaView_DIR/$pvLibDir" ]
then
case "$pv_api" in
libDir="$pvLibDir" # Needs lib/paraview-X.X (not lib)
;;
esac
pv_libdirs="$ParaView_DIR/$libDir:${pv_libdirs}"
break
fi
unset pvLibDir
done
# OpenFOAM plugin directory must be the first in PV_PLUGIN_PATH
# and have paraview-major.minor encoded in its name
if [ -d "$pv_plugin_dir" ]
then
export PV_PLUGIN_PATH="$pv_plugin_dir"
else
pv_plugin_dir="${pv_plugin_dir} (missing)" # For message
fi
# Any extra library directories
if [ -n "$pv_libdirs" ]
then
case "$WM_ARCH" in
(darwin*)
export FOAM_LD_LIBRARY_PATH="${pv_libdirs}:${FOAM_LD_LIBRARY_PATH}"
export DYLD_LIBRARY_PATH="${FOAM_LD_LIBRARY_PATH}"
;;
(*)
export LD_LIBRARY_PATH="${pv_libdirs}:${LD_LIBRARY_PATH}"
;;
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
then
echo " ParaView_DIR : $ParaView_DIR" 1>&2
echo " library : $pvLibDir" 1>&2
echo " plugins : $pv_plugin_dir" 1>&2
fi
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
echo "No paraview found" 1>&2
echo " ParaView_DIR : $ParaView_DIR" 1>&2
unset ParaView_DIR
fi
#------------------------------------------------------------------------------
if command -v _foamAddLib >/dev/null # normal sourcing
unset ParaView_VERSION ParaView_QT
unset pv_api pv_plugin_dir pv_libdirs pvLibDir pvPython qtDir
#------------------------------------------------------------------------------