- the special MacOS dlopen handling (commit f584ec97d0
)
did not fully solve the problem with SIP clearing.
Eg, sourcing the RunFunctions (for runParallel) triggers SIP and
clears DYLD_LIBRARY_PATH. With the cleared path it finds the dummy
libraries: the dummy Pstream::init() fails.
239 lines
6.4 KiB
Bash
239 lines
6.4 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
|
|
# etc/config.sh/unset
|
|
#
|
|
# Description
|
|
# Clear as many OpenFOAM environment settings as possible
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Clean standard environment variables (PATH, LD_LIBRARY_PATH, MANPATH)
|
|
foamClean=$WM_PROJECT_DIR/bin/foamCleanPath
|
|
[ -f "$foamClean" -a -x "$foamClean" ] || unset foamClean
|
|
|
|
# The old dirs to be cleaned from the environment variables
|
|
foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \
|
|
$HOME/$WM_PROJECT/$USER $FOAM_USER_APPBIN $FOAM_USER_LIBBIN \
|
|
$WM_PROJECT_SITE $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN \
|
|
$ParaView_DIR $ParaView_MESA_DIR"
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset WM_* environment variables
|
|
|
|
unset WM_ARCH
|
|
unset WM_ARCH_OPTION
|
|
unset WM_COMPILER
|
|
unset WM_COMPILER_ARCH
|
|
unset WM_COMPILER_LIB_ARCH
|
|
unset WM_COMPILER_TYPE
|
|
unset WM_COMPILE_CONTROL
|
|
unset WM_COMPILE_OPTION
|
|
unset WM_DIR
|
|
unset WM_LABEL_OPTION
|
|
unset WM_LABEL_SIZE
|
|
unset WM_MPLIB
|
|
unset WM_NCOMPPROCS
|
|
unset WM_OPTIONS
|
|
unset WM_OSTYPE
|
|
unset WM_PRECISION_OPTION
|
|
unset WM_PROJECT
|
|
unset WM_PROJECT_DIR
|
|
unset WM_PROJECT_SITE
|
|
unset WM_PROJECT_USER_DIR
|
|
unset WM_PROJECT_VERSION
|
|
unset WM_QUIET
|
|
unset WM_SCHEDULER
|
|
unset WM_THIRD_PARTY_DIR
|
|
|
|
# Older, unused variables
|
|
unset WM_PROJECT_INST_DIR
|
|
|
|
# Before 1906
|
|
unset WM_CC WM_CXX WM_CFLAGS WM_CXXFLAGS WM_LDFLAGS
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset FOAM_* environment variables
|
|
|
|
unset FOAM_API
|
|
unset FOAM_APPBIN
|
|
unset FOAM_APP
|
|
unset FOAM_CODE_TEMPLATES
|
|
unset FOAM_CONFIG_ETC
|
|
unset FOAM_CONFIG_MODE
|
|
unset FOAM_ETC
|
|
unset FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS
|
|
unset FOAM_EXT_LIBBIN
|
|
unset FOAM_JOB_DIR
|
|
unset FOAM_LIBBIN
|
|
unset FOAM_MODULE_APPBIN
|
|
unset FOAM_MODULE_LIBBIN
|
|
unset FOAM_MODULE_PREFIX
|
|
unset FOAM_MPI
|
|
unset FOAM_MPI_LIBBIN
|
|
unset FOAM_RUN
|
|
unset FOAM_SETTINGS
|
|
unset FOAM_SIGFPE
|
|
unset FOAM_SIGNAN
|
|
unset FOAM_SITE_APPBIN
|
|
unset FOAM_SITE_LIBBIN
|
|
unset FOAM_SOLVERS
|
|
unset FOAM_SRC
|
|
unset FOAM_TUTORIALS
|
|
unset FOAM_USER_APPBIN
|
|
unset FOAM_USER_LIBBIN
|
|
unset FOAM_UTILITIES
|
|
|
|
# Build related
|
|
unset FOAM_BUILDROOT
|
|
unset FOAM_THIRD_PARTY_BUILDROOT
|
|
unset FOAM_THIRD_PARTY_SOURCES
|
|
|
|
# Older, unused variables
|
|
|
|
# Before 1812
|
|
unset FOAM_INST_DIR
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset MPI-related environment variables
|
|
|
|
unset MPI_ARCH_PATH
|
|
unset MPI_BUFFER_SIZE
|
|
|
|
# Cleanup mpi prefix values if set to one of the paths on foamOldDirs
|
|
if [ -n "$foamClean" ]
|
|
then
|
|
# openmpi:
|
|
[ -z "$($foamClean -env=OPAL_PREFIX $foamOldDirs)" ] && unset OPAL_PREFIX
|
|
# intelmpi:
|
|
[ -z "$($foamClean -env=I_MPI_ROOT $foamOldDirs)" ] && unset I_MPI_ROOT
|
|
fi
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset ParaView/VTK-related environment variables
|
|
|
|
unset ParaView_DIR
|
|
unset ParaView_MESA_DIR
|
|
unset ParaView_INCLUDE_DIR
|
|
unset ParaView_VERSION
|
|
unset PV_PLUGIN_PATH
|
|
unset VTK_DIR
|
|
|
|
# Undefine Qt5_DIR if set to one of the paths on foamOldDirs
|
|
if [ -n "$foamClean" ] && [ -z "$($foamClean -env=Qt5_DIR $foamOldDirs)" ]
|
|
then
|
|
unset Qt5_DIR
|
|
fi
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset other ThirdParty environment variables
|
|
|
|
unset ADIOS_ARCH_PATH
|
|
unset ADIOS1_ARCH_PATH
|
|
unset ADIOS2_ARCH_PATH
|
|
unset BOOST_ARCH_PATH
|
|
unset CCMIO_ARCH_PATH
|
|
unset CGAL_ARCH_PATH
|
|
unset FFTW_ARCH_PATH
|
|
unset GPERFTOOLS_ARCH_PATH
|
|
unset GMP_ARCH_PATH
|
|
unset MPFR_ARCH_PATH
|
|
unset LLVM_ARCH_PATH
|
|
unset MESA_ARCH_PATH
|
|
unset KAHIP_ARCH_PATH
|
|
unset METIS_ARCH_PATH
|
|
unset SCOTCH_ARCH_PATH
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup environment
|
|
# PATH, LD_LIBRARY_PATH, MANPATH
|
|
|
|
if [ -n "$foamClean" ]
|
|
then
|
|
eval "$($foamClean -sh-env=PATH $foamOldDirs)"
|
|
eval "$($foamClean -sh-env=MANPATH $foamOldDirs)"
|
|
eval "$($foamClean -sh-env=LD_LIBRARY_PATH $foamOldDirs)"
|
|
# Darwin
|
|
eval "$($foamClean -sh-env=FOAM_LD_LIBRARY_PATH $foamOldDirs)"
|
|
export DYLD_LIBRARY_PATH="$FOAM_LD_LIBRARY_PATH"
|
|
fi
|
|
|
|
[ -n "$MANPATH" ] || unset MANPATH
|
|
[ -n "$LD_LIBRARY_PATH" ] || unset LD_LIBRARY_PATH
|
|
[ -n "$DYLD_LIBRARY_PATH" ] || unset DYLD_LIBRARY_PATH
|
|
|
|
# Remove shadow env variables
|
|
unset FOAM_LD_LIBRARY_PATH
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup aliases and functions
|
|
|
|
unalias wmSet 2>/dev/null
|
|
unalias wmInt32 2>/dev/null
|
|
unalias wmInt64 2>/dev/null
|
|
unalias wmDP 2>/dev/null
|
|
unalias wmSP 2>/dev/null
|
|
unalias wmSPDP 2>/dev/null
|
|
|
|
unalias wmUnset 2>/dev/null
|
|
|
|
unalias wmSchedOn 2>/dev/null
|
|
unalias wmSchedOff 2>/dev/null
|
|
|
|
unalias foam 2>/dev/null
|
|
|
|
unalias src 2>/dev/null
|
|
unalias lib 2>/dev/null
|
|
unalias app 2>/dev/null
|
|
unalias sol 2>/dev/null
|
|
unalias util 2>/dev/null
|
|
unalias tut 2>/dev/null
|
|
unalias run 2>/dev/null
|
|
|
|
unalias ufoam 2>/dev/null
|
|
unalias uapp 2>/dev/null
|
|
unalias usol 2>/dev/null
|
|
unalias uutil 2>/dev/null
|
|
|
|
unset -f wmRefresh 2>/dev/null
|
|
unset -f foamPwd 2>/dev/null
|
|
unset -f foamVersion 2>/dev/null
|
|
unset -f foamPV 2>/dev/null
|
|
|
|
# NB: no good way to remove foamPwd reference in PS1.
|
|
|
|
|
|
# Remove old completions, which look like
|
|
# "complete ... -F _of_complete_ APPNAME
|
|
# For economy, obtain list first
|
|
foamOldDirs="$(complete 2>/dev/null | sed -ne 's/^.*-F _of_.* \(..*\)$/\1/p')"
|
|
for cleaned in $foamOldDirs
|
|
do
|
|
complete -r "$cleaned" 2>/dev/null
|
|
done
|
|
|
|
# Completion functions
|
|
unset -f foamAddCompletion 2>/dev/null
|
|
unset -f _of_complete_ 2>/dev/null
|
|
|
|
# Completion cache
|
|
unset _of_complete_cache_
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Intermediate variables (do as last for a clean exit code)
|
|
|
|
unset cleaned foamClean foamOldDirs _foamFoundDir
|
|
|
|
#------------------------------------------------------------------------------
|