openfoam/etc/config.sh/unset
Mark Olesen b264d2e913 CONFIG: reinstate FOAM_LD_LIBRARY_PATH adjustments (#2801)
- 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.
2023-06-26 09:47:07 +02:00

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
#------------------------------------------------------------------------------