mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
CONFIG: improve prefix matching for system libraries (#1607)
- missed detection of system libraries when installed with multiarch paths like /usr/lib/x86_64-linux-gnu CONFIG: improve handling of group/user config files (#928) - changed bashrc handling of FOAM_CONFIG_NOUSER to use FOAM_CONFIG_MODE instead. Propagate into foamEtcFile to make this a stickier control. This change allows better control, but also enables cluster installations to define their own value within the OpenFOAM prefs.sh file to prevent users accidentally mis-configuring things if necessary. - remove undocumented handling of an (a)ll mode in foamEtcFile to avoid potential pitfalls. - add support for FOAM_CONFIG_ETC handling. This allows injection of an extra search layer when finding project etc files ENH: improvements to foamConfigurePaths (#928) - handle FOAM_CONFIG_ETC implicitly, or explicitly with the new -etc option. STYLE: more explicit wording in foamConfigurePaths usage (#1602) - document that an absolute path (eg, -scotch-path) overrides/ignores the equivalent ThirdParty setting (eg, -scotch) - longer options -system-compiler and -third-compiler for -system and -third, respectively. Clearer as to their purpose. - adjust the location sanity check to look for META-INFO directory.
This commit is contained in:
@ -18,10 +18,11 @@
|
||||
# Finalize setup of OpenFOAM environment for C-shell (csh, tcsh)
|
||||
#
|
||||
# Environment
|
||||
# FOAM_CONFIG_MODE (search mode for etc config files - see foamEtcFile)
|
||||
# - eg, FOAM_CONFIG_MODE="o" to only use OpenFOAM config files
|
||||
#
|
||||
# FOAM_VERBOSE (set/unset)
|
||||
# - add extra verbosity when sourcing files
|
||||
# FOAM_CONFIG_NOUSER (set/unset)
|
||||
# - suppress use of user/group configuration files
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -77,14 +78,21 @@ endif
|
||||
|
||||
|
||||
# Overrides via <prefs.csh>
|
||||
# 1. other (system) values
|
||||
# 1. Always use (O)ther values from the OpenFOAM project etc/ directory
|
||||
_foamEtc -mode=o prefs.csh
|
||||
|
||||
# 2. user or group values (unless disabled)
|
||||
if (! $?FOAM_CONFIG_NOUSER ) then
|
||||
_foamEtc -mode=ug prefs.csh
|
||||
# 2. (U)ser or (G)roup values (unless disabled). Could use some more work
|
||||
if ($?FOAM_CONFIG_MODE) then
|
||||
set configMode="${FOAM_CONFIG_MODE:s/o//}" # Already handled O(ther)
|
||||
else
|
||||
set configMode="ug"
|
||||
endif
|
||||
|
||||
# Is the remainder valid - has U(ser) or G(roup)?
|
||||
switch ("$configMode")
|
||||
case *[ug]*:
|
||||
_foamEtc -mode="$configMode" prefs.csh
|
||||
breaksw
|
||||
endsw
|
||||
|
||||
# Capture and evaluate any command-line parameters
|
||||
# These can be used to set/unset values, specify additional files etc.
|
||||
@ -119,6 +127,16 @@ while ( $#argv > 0 )
|
||||
shift
|
||||
end
|
||||
|
||||
# The prefs may have injected a FOAM_CONFIG_ETC value.
|
||||
# Verify that it makes sense before continuing.
|
||||
if ( $?FOAM_CONFIG_ETC ) then
|
||||
if ( ! -d "$FOAM_CONFIG_ETC" ) then
|
||||
echo "Ignore invalid FOAM_CONFIG_ETC = $FOAM_CONFIG_ETC"
|
||||
else if ( "$FOAM_CONFIG_ETC" == "$WM_PROJECT_DIR/etc" ) then
|
||||
unsetenv FOAM_CONFIG_ETC
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH)
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Reference in New Issue
Block a user