openfoam/etc/config.csh/paraview
Alexey Matveichev e827c117e3 CONFIG: fixes for MacOS (#2555)
- introduce a FOAM_LD_LIBRARY_PATH variable to shadow
  DYLD_LIBRARY_PATH on MacOS.

  The DYLD_LIBRARY_PATH and LD_LIBRARY_PATH cannot be modified via sub
  shells etc when SIP is active. This helps circumvent these
  restrictions, which is obviously a hack, but seems to be required.

COMP: disable -ftrapping-math in geompack for MacOS
2022-08-19 12:52:11 +02:00

253 lines
8.0 KiB
Bash

#----------------------------------*-sh-*--------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | www.openfoam.com
# \\/ M anipulation |
#------------------------------------------------------------------------------
# Copyright (C) 2011-2016 OpenFOAM Foundation
# Copyright (C) 2016-2022 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
#
# File
# config.csh/paraview
# - sourced by OpenFOAM-*/etc/cshrc or via foamPV alias
#
# Description
# Setup for PARAVIEW (partially QT too)
#
# To disable use of the PV_PLUGIN_PATH:
# ParaView_VERSION=none
#
# For system-wide installations:
# ParaView_QT=qt-system
# ParaView_VERSION=system [EXPERIMENTAL]
#
# Note
# 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,
#
# setenv ParaView_DIR /opt/paraview/paraview-5.6.0
# setenv PV_PLUGIN_PATH $FOAM_LIBBIN/paraview-5.6
#
# setenv PATH $ParaView_DIR/bin:${PATH}
# setenv LD_LIBRARY_PATH $ParaView_DIR/lib:$LD_LIBRARY_PATH
# unsetenv ParaView_VERSION # skip ThirdParty settings
#
# In paraview-5.4 and earlier, the libraries were in the sub-directory:
#
# setenv LD_LIBRARY_PATH $ParaView_DIR/lib/paraview-5.4:$LD_LIBRARY_PATH
#
# 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
set ParaView_VERSION=5.10.1
set ParaView_QT=qt-system
# END OF (NORMAL) USER EDITABLE PART
#------------------------------------------------------------------------------
set pv_api=auto # Either auto or pair of (major.minor) digits
if (! $?ParaView_DIR ) setenv ParaView_DIR
if (! $?WM_COMPILER_LIB_ARCH ) setenv WM_COMPILER_LIB_ARCH
# Compiler-specific location for ThirdParty installations
set archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER"
# Clean path and library path
eval `$WM_PROJECT_DIR/bin/foamCleanPath -csh-path "$ParaView_DIR $archDir/ParaView- $archDir/qt-"`
eval `$WM_PROJECT_DIR/bin/foamCleanPath -csh-lib "$ParaView_DIR $archDir/ParaView- $archDir/qt-"`
# Darwin
switch ("$WM_ARCH")
case darwin*:
setenv DYLD_LIBRARY_PATH "${FOAM_LD_LIBRARY_PATH}"
breaksw
endsw
# Evaluate command-line parameters for ParaView
while ( $#argv > 0 )
switch ($argv[1])
case ParaView*=*:
# name=value -> set name=value
eval "set $argv[1]"
breaksw
endsw
shift
end
unset pv_plugin_dir
unsetenv PV_PLUGIN_PATH
if ($?ParaView_VERSION) then
switch ("$ParaView_VERSION")
case "":
# empty - do nothing
setenv ParaView_DIR # Defined but empty (used by foamPV alias)
breaksw
case "none":
setenv ParaView_DIR # Defined but empty (used by foamPV alias)
if ($?FOAM_VERBOSE && $?prompt) then
echo "Using paraview (disabled)"
endif
breaksw
case "system":
# Obtain (major.minor) from `paraview --version`
set pv_api=`paraview --version | sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'`
if ("${pv_api}" == "") then
unsetenv ParaView_DIR PV_PLUGIN_PATH
else
# Get ParaView_DIR from `which paraview`
# Eg, /usr/bin/paraview -> /usr/bin -> /usr
set pv_dir=`which paraview`
if ( -x "$pv_dir" ) then
set pv_dir="${pv_dir:h}"
setenv ParaView_DIR "${pv_dir:h}"
endif
set pv_plugin_dir="$FOAM_LIBBIN/paraview-$pv_api"
if ( -d "$pv_plugin_dir" ) then
setenv PV_PLUGIN_PATH "$pv_plugin_dir"
else
set pv_plugin_dir="${pv_plugin_dir} (missing)" # For message
endif
endif
if ($?FOAM_VERBOSE && $?prompt) then
if ( $?pv_plugin_dir ) then
echo "Using paraview (system)"
echo " plugins : ${pv_plugin_dir}"
else
echo "system paraview (not found)"
endif
endif
breaksw
default:
# ParaView_VERSION set and non-empty
# Set API to correspond to VERSION
# pv_api is <digits>.<digits> from ParaView_VERSION
if (! $?pv_api ) set pv_api=auto
switch ("$ParaView_VERSION")
case "$pv_api".*:
# API and VERSION appear to correspond
breaksw
case [0-9]*:
# Extract API from VERSION.
set pv_api=`echo "$ParaView_VERSION" | sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'`
breaksw
endsw
setenv ParaView_DIR "$archDir/ParaView-$ParaView_VERSION"
set pv_plugin_dir="$FOAM_LIBBIN/paraview-$pv_api"
# Set paths if binaries are present
if ( -r "$ParaView_DIR" ) then
setenv PATH "${ParaView_DIR}/bin:${PATH}"
set pvLibDir="unknown"
set pv_libdirs=""
# QT libraries as required, and Qt5_DIR for the root directory.
# Another possibility: "qtpaths --qt-version"
set qtDir="$archDir/$ParaView_QT"
if ( -d "$qtDir" ) then
switch ("$ParaView_QT")
case *-5*:
setenv Qt5_DIR "$qtDir"
breaksw
endsw
foreach libDir ("lib$WM_COMPILER_LIB_ARCH" "lib")
if ( -d "${qtDir}/${libDir}" ) then
set pv_libdirs="${qtDir}/${libDir}"
break
endif
end
endif
# ParaView libraries
# - 5.4 and earlier: lib/paraview-X.X
# - 5.5 and later: lib/, but could also be lib64/
foreach libDir ("lib$WM_COMPILER_LIB_ARCH" "lib")
set pvLibDir="${libDir}/paraview-${pv_api}"
if ( -d "${ParaView_DIR}/${pvLibDir}" ) then
switch ("$pv_api")
case 5.[0-4]:
set libDir="$pvLibDir" # Needs lib/paraview-X.X (not lib)
breaksw
endsw
set pv_libdirs="${ParaView_DIR}/${libDir}:${pv_libdirs}"
break
endif
set pvLibDir="unknown"
end
# 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
setenv PV_PLUGIN_PATH "$pv_plugin_dir"
else
set pv_plugin_dir="${pv_plugin_dir} (missing)" # For message
endif
# Any extra library directories
if ( "$pv_libdirs" != "" ) then
switch ("$WM_ARCH")
case darwin*:
setenv FOAM_LD_LIBRARY_PATH "${pv_libdirs}:${FOAM_LD_LIBRARY_PATH}"
setenv DYLD_LIBRARY_PATH "${FOAM_LD_LIBRARY_PATH}"
breaksw
default:
setenv LD_LIBRARY_PATH "${pv_libdirs}:${LD_LIBRARY_PATH}"
breaksw
endsw
endif
if ($?FOAM_VERBOSE && $?prompt) then
echo "Using paraview"
echo " ParaView_DIR : $ParaView_DIR"
echo " library : $pvLibDir"
echo " plugins : ${pv_plugin_dir}"
endif
else
if ($?FOAM_VERBOSE && $?prompt) then
echo "No paraview found"
echo " ParaView_DIR : $ParaView_DIR"
endif
unsetenv PV_PLUGIN_PATH
setenv ParaView_DIR # Defined but empty (used by foamPV alias)
endif
breaksw
endsw
endif
#------------------------------------------------------------------------------
unsetenv ParaView_VERSION ParaView_QT
unset archDir libDir
unset pv_api pv_plugin_dir pv_libdirs pvLibDir pvPython qtDir
#------------------------------------------------------------------------------