ENH: more tuning parameters for user environment

- FOAM_CONFIG_NOUSER
  Suppress use of user/group configuration files.
  This is useful when packaging for a central installation.

- allow additional user tuning of compiler settings.
  Per-compiler overrides in "compiler-$WM_COMPILER" files
This commit is contained in:
Mark Olesen
2018-07-18 10:25:55 +02:00
parent 3bb5cef5bf
commit a225d5f87a
6 changed files with 76 additions and 23 deletions

View File

@ -27,7 +27,15 @@
# - $WM_PROJECT_SITE/site/$WM_PROJECT_VERSION/prefs.sh # - $WM_PROJECT_SITE/site/$WM_PROJECT_VERSION/prefs.sh
# - $WM_PROJECT_SITE/site/prefs.sh # - $WM_PROJECT_SITE/site/prefs.sh
# #
# Note: Changes made to this bashrc file may be lost with the next upgrade. # Environment
# FOAM_VERBOSE (set/unset)
# - add extra verbosity when sourcing files
# FOAM_CONFIG_NOUSER (set/unset)
# - suppress use of user/group configuration files
#
# Note
# Changes made to this bashrc file may be lost with the next upgrade.
#
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
export WM_PROJECT=OpenFOAM export WM_PROJECT=OpenFOAM
@ -130,13 +138,22 @@ export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION
. $WM_PROJECT_DIR/etc/config.sh/functions . $WM_PROJECT_DIR/etc/config.sh/functions
# Overrides via <prefs.sh> # Overrides via <prefs.sh>
_foamEtc -mode=o prefs.sh # 1) other (system) values # 1. other (system) values
_foamEtc -mode=ug prefs.sh # 2) user or group values _foamEtc -mode=o prefs.sh
# 2. user or group values (unless disabled)
[ -z "$FOAM_CONFIG_NOUSER" ] && _foamEtc -mode=ug prefs.sh
# Evaluate command-line parameters and record settings for later. # Evaluate command-line parameters and record settings for later.
# These can be used to set/unset values, specify additional files etc. # These can be used to set/unset values, specify additional files etc.
export FOAM_SETTINGS="$@" FOAM_SETTINGS="$@"
_foamEval $@ if [ -z "$FOAM_SETTINGS" ]
then
unset FOAM_SETTINGS
else
export FOAM_SETTINGS
_foamEval $@
fi
# Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH) # Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -15,12 +15,14 @@
# #
# Description # Description
# Setup for custom compiler versions for OpenFOAM # Setup for custom compiler versions for OpenFOAM
# Per-compiler overrides in "compiler-$WM_COMPILER" files
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
switch ("$WM_COMPILER_TYPE") switch ("$WM_COMPILER_TYPE")
case ThirdParty: case ThirdParty:
# Default versions of GMP, MPFR, MPC - override as necessary # Default versions of GMP, MPFR, MPC - override as necessary
set gmp_version=gmp-system set gmp_version=gmp-system
set mpfr_version=mpfr-system set mpfr_version=mpfr-system
set mpc_version=mpc-system set mpc_version=mpc-system
@ -102,6 +104,9 @@ Please check your settings
UNKNOWN_COMPILER UNKNOWN_COMPILER
breaksw breaksw
endsw endsw
# Per-compiler overrides in "compiler-$WM_COMPILER" files
_foamEtc -config "compiler-$WM_COMPILER"
breaksw breaksw
endsw endsw

View File

@ -35,9 +35,17 @@ alias _foamAddLibAuto 'eval `$WM_PROJECT_DIR/bin/tools/lib-dir -csh \!*`'
# Source an etc file, possibly with some verbosity # Source an etc file, possibly with some verbosity
if ($?FOAM_VERBOSE && $?prompt) then if ($?FOAM_VERBOSE && $?prompt) then
alias _foamEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh-verbose \!*`' if ($?FOAM_CONFIG_NOUSER) then
alias _foamEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh-verbose -mode=o \!*`'
else
alias _foamEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh-verbose \!*`'
endif
else else
alias _foamEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh \!*`' if ($?FOAM_CONFIG_NOUSER) then
alias _foamEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh -mode=o \!*`'
else
alias _foamEtc 'eval `$WM_PROJECT_DIR/bin/foamEtcFile -csh \!*`'
endif
endif endif

View File

@ -15,6 +15,7 @@
# #
# Description # Description
# Setup for custom compiler versions for OpenFOAM # Setup for custom compiler versions for OpenFOAM
# Per-compiler overrides in "compiler-$WM_COMPILER" files
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -100,6 +101,9 @@ Please check your settings
UNKNOWN_COMPILER UNKNOWN_COMPILER
;; ;;
esac esac
# Per-compiler overrides in "compiler-$WM_COMPILER" files
_foamEtc -config "compiler-$WM_COMPILER"
;; ;;
esac esac

View File

@ -16,7 +16,7 @@
# Description # Description
# Shell functions and variables used when sourcing the OpenFOAM environment # Shell functions and variables used when sourcing the OpenFOAM environment
# #
# Some functionality is shadowed in bin/tools/lib-dir # Some functionality mirrored by bin/tools/lib-dir
# #
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -33,11 +33,27 @@ then
# Cleaning environment variables # Cleaning environment variables
_foamClean() _foamClean()
{ {
local var=$1 foamVar_name=$1
shift shift
eval $($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=$var "$@") eval $($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=$foamVar_name "$@")
unset foamVar_name
} }
# Source an etc file, possibly with some verbosity
# - use eval to avoid intermediate variables (ksh doesn't have 'local')
if [ "$FOAM_VERBOSE" -a "$PS1" ]
then
_foamEtc()
{
eval "$($WM_PROJECT_DIR/bin/foamEtcFile -sh-verbose ${FOAM_CONFIG_NOUSER:+-mode=o} $@)";
}
else
_foamEtc()
{
eval "$($WM_PROJECT_DIR/bin/foamEtcFile -sh ${FOAM_CONFIG_NOUSER:+-mode=o} $@)";
}
fi
# Prepend PATH # Prepend PATH
_foamAddPath() _foamAddPath()
{ {
@ -133,15 +149,6 @@ then
fi fi
# Source an etc file, possibly with some verbosity
# - use eval to avoid intermediate variables (ksh doesn't have 'local')
if [ "$FOAM_VERBOSE" -a "$PS1" ]
then
_foamEtc(){ eval "$($WM_PROJECT_DIR/bin/foamEtcFile -sh-verbose $@)"; }
else
_foamEtc(){ eval "$($WM_PROJECT_DIR/bin/foamEtcFile -sh $@)"; }
fi
# Evaluate command-line parameters # Evaluate command-line parameters
_foamEval() _foamEval()
{ {

View File

@ -27,7 +27,15 @@
# - $WM_PROJECT_SITE/site/$WM_PROJECT_VERSION/prefs.csh # - $WM_PROJECT_SITE/site/$WM_PROJECT_VERSION/prefs.csh
# - $WM_PROJECT_SITE/site/prefs.csh # - $WM_PROJECT_SITE/site/prefs.csh
# #
# Note: Changes made to this cshrc file may be lost with the next upgrade. # Environment
# FOAM_VERBOSE (set/unset)
# - add extra verbosity when sourcing files
# FOAM_CONFIG_NOUSER (set/unset)
# - suppress use of user/group configuration files
#
# Note
# Changes made to this cshrc file may be lost with the next upgrade.
#
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
setenv WM_PROJECT OpenFOAM setenv WM_PROJECT OpenFOAM
@ -141,8 +149,13 @@ setenv WM_PROJECT_USER_DIR $HOME/$WM_PROJECT/$LOGNAME-$WM_PROJECT_VERSION
source $WM_PROJECT_DIR/etc/config.csh/functions source $WM_PROJECT_DIR/etc/config.csh/functions
# Overrides via <prefs.csh> # Overrides via <prefs.csh>
_foamEtc -mode=o prefs.csh # 1) other (system) systems # 1. other (system) values
_foamEtc -mode=ug prefs.csh # 2) user or group settings _foamEtc -mode=o prefs.csh
# 2. user or group values (unless disabled)
if (! $?FOAM_CONFIG_NOUSER ) then
_foamEtc -mode=ug prefs.csh
endif
# Evaluate command-line parameters and record settings for later. # Evaluate command-line parameters and record settings for later.
# These can be used to set/unset values, specify additional files etc. # These can be used to set/unset values, specify additional files etc.
@ -188,7 +201,6 @@ _foamClean PATH "$foamOldDirs"
_foamClean MANPATH "$foamOldDirs" _foamClean MANPATH "$foamOldDirs"
_foamClean LD_LIBRARY_PATH "$foamOldDirs" _foamClean LD_LIBRARY_PATH "$foamOldDirs"
# Setup for OpenFOAM compilation etc # Setup for OpenFOAM compilation etc
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_foamEtc -config settings _foamEtc -config settings