mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: relocate WM_PROJECT_SITE default (issue #1050)
- was PREFIX/site, now PROJECT/site This avoids several issues when installing OpenFOAM in clusters without an intermediate OpenFOAM-specific installation prefix. The 'site' directory may have a reserved meaning in these situations and it is undesirable to 'leak' upwards into the parent directory to look for configuration files. Placing the default within the project directory avoids this. Alternative locations can be given via the WM_PROJECT_SITE variable.
This commit is contained in:
@ -31,7 +31,7 @@
|
|||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
Script=${0##*/}
|
Script=${0##*/}
|
||||||
toolsDir=${0%/*}/tools
|
toolsDir=${0%/*}/tools
|
||||||
siteDir=${WM_PROJECT_SITE:-${WM_PROJECT_INST_DIR:-<unknown>}/site}
|
siteDir="${WM_PROJECT_SITE:-${WM_PROJECT_DIR:-<unknown>}/site}"
|
||||||
userDir=$HOME/.OpenFOAM
|
userDir=$HOME/.OpenFOAM
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
|
|||||||
@ -30,9 +30,10 @@
|
|||||||
# - requires rsync
|
# - requires rsync
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
siteDir=${WM_PROJECT_SITE:-${WM_PROJECT_INST_DIR:-<unknown>}/site}
|
siteDir="${WM_PROJECT_SITE:-${WM_PROJECT_DIR:-<unknown>}/site}"
|
||||||
userDir=$HOME/.OpenFOAM
|
userDir="$HOME/.OpenFOAM"
|
||||||
version=${WM_PROJECT_VERSION:-unknown}
|
version="${WM_PROJECT_VERSION:-unknown}"
|
||||||
|
|
||||||
templateDir="appTemplates"
|
templateDir="appTemplates"
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -42,11 +42,11 @@
|
|||||||
# The suffix value should normally include "platforms/$WM_OPTIONS"
|
# The suffix value should normally include "platforms/$WM_OPTIONS"
|
||||||
#
|
#
|
||||||
# Example
|
# Example
|
||||||
# . /path/change-sitedir.sh -prefix -platforms
|
# . /path/change-sitedir.sh -project -platforms
|
||||||
#
|
#
|
||||||
# corresponds to the standard site location:
|
# corresponds to the standard site location:
|
||||||
#
|
#
|
||||||
# $WM_PROJECT_INST_DIR/site{/$WM_PROJECT_VERSION/platforms/$WM_OPTIONS}
|
# $WM_PROJECT_DIR/site{/$WM_PROJECT_VERSION/platforms/$WM_OPTIONS}
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -115,9 +115,9 @@
|
|||||||
// - ~/.OpenFOAM/
|
// - ~/.OpenFOAM/
|
||||||
// <em>for version-independent files</em>
|
// <em>for version-independent files</em>
|
||||||
// -# group settings
|
// -# group settings
|
||||||
// - $WM_PROJECT_INST_DIR/site/\<VERSION\>
|
// - $WM_PROJECT_DIR/site/\<VERSION\>
|
||||||
// <em>for version-specific files</em>
|
// <em>for version-specific files</em>
|
||||||
// - $WM_PROJECT_INST_DIR/site/
|
// - $WM_PROJECT_DIR/site/
|
||||||
// <em>for version-independent files</em>
|
// <em>for version-independent files</em>
|
||||||
// -# other (shipped) settings
|
// -# other (shipped) settings
|
||||||
// - $WM_PROJECT_DIR/etc/
|
// - $WM_PROJECT_DIR/etc/
|
||||||
|
|||||||
@ -134,7 +134,9 @@ export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
|
|||||||
export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION
|
export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION
|
||||||
|
|
||||||
# [WM_PROJECT_SITE] - Location of site-specific (group) files
|
# [WM_PROJECT_SITE] - Location of site-specific (group) files
|
||||||
# default (unset) implies WM_PROJECT_INST_DIR/site
|
# Default (unset) implies WM_PROJECT_DIR/site
|
||||||
|
# Normally defined in calling environment
|
||||||
|
|
||||||
if [ -d "$WM_PROJECT_SITE" ]
|
if [ -d "$WM_PROJECT_SITE" ]
|
||||||
then
|
then
|
||||||
export WM_PROJECT_SITE
|
export WM_PROJECT_SITE
|
||||||
|
|||||||
@ -154,7 +154,7 @@ setenv FOAM_EXT_LIBBIN $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRE
|
|||||||
if ( $?WM_PROJECT_SITE ) then
|
if ( $?WM_PROJECT_SITE ) then
|
||||||
set siteDir=$WM_PROJECT_SITE
|
set siteDir=$WM_PROJECT_SITE
|
||||||
else
|
else
|
||||||
set siteDir=$WM_PROJECT_INST_DIR/site
|
set siteDir=$WM_PROJECT_DIR/site
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Shared site (group) executables/libraries
|
# Shared site (group) executables/libraries
|
||||||
@ -177,7 +177,6 @@ endif
|
|||||||
if ( -d "$siteDir/$WM_PROJECT_VERSION/bin" ) then # Version-specific
|
if ( -d "$siteDir/$WM_PROJECT_VERSION/bin" ) then # Version-specific
|
||||||
_foamAddPath "$siteDir/$WM_PROJECT_VERSION/bin"
|
_foamAddPath "$siteDir/$WM_PROJECT_VERSION/bin"
|
||||||
endif
|
endif
|
||||||
unset siteDir
|
|
||||||
|
|
||||||
_foamAddPath ${FOAM_USER_APPBIN}:${FOAM_SITE_APPBIN}:${FOAM_APPBIN}
|
_foamAddPath ${FOAM_USER_APPBIN}:${FOAM_SITE_APPBIN}:${FOAM_APPBIN}
|
||||||
_foamAddLib $FOAM_LIBBIN/dummy # Dummy versions of external libraries last
|
_foamAddLib $FOAM_LIBBIN/dummy # Dummy versions of external libraries last
|
||||||
@ -333,7 +332,7 @@ endsw
|
|||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
# ~~~~~~~
|
# ~~~~~~~
|
||||||
unset archDir
|
unset archDir siteDir
|
||||||
unset gcc_version gccDir
|
unset gcc_version gccDir
|
||||||
unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir
|
unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir
|
||||||
unset clang_version clangDir
|
unset clang_version clangDir
|
||||||
|
|||||||
@ -148,7 +148,7 @@ if [ -n "$WM_PROJECT_SITE" ]
|
|||||||
then
|
then
|
||||||
siteDir=$WM_PROJECT_SITE
|
siteDir=$WM_PROJECT_SITE
|
||||||
else
|
else
|
||||||
siteDir=$WM_PROJECT_INST_DIR/site
|
siteDir=$WM_PROJECT_DIR/site
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Shared site (group) executables/libraries
|
# Shared site (group) executables/libraries
|
||||||
@ -173,7 +173,6 @@ if [ -d "$siteDir/$WM_PROJECT_VERSION/bin" ] # Version-specific
|
|||||||
then
|
then
|
||||||
_foamAddPath "$siteDir/$WM_PROJECT_VERSION/bin"
|
_foamAddPath "$siteDir/$WM_PROJECT_VERSION/bin"
|
||||||
fi
|
fi
|
||||||
unset siteDir
|
|
||||||
|
|
||||||
_foamAddPath $FOAM_USER_APPBIN:$FOAM_SITE_APPBIN:$FOAM_APPBIN
|
_foamAddPath $FOAM_USER_APPBIN:$FOAM_SITE_APPBIN:$FOAM_APPBIN
|
||||||
_foamAddLib $FOAM_LIBBIN/dummy # Dummy versions of external libraries last
|
_foamAddLib $FOAM_LIBBIN/dummy # Dummy versions of external libraries last
|
||||||
@ -321,7 +320,7 @@ esac
|
|||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
# ~~~~~~~
|
# ~~~~~~~
|
||||||
unset archDir
|
unset archDir siteDir
|
||||||
unset gcc_version gccDir
|
unset gcc_version gccDir
|
||||||
unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir
|
unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir
|
||||||
unset clang_version clangDir
|
unset clang_version clangDir
|
||||||
|
|||||||
@ -145,7 +145,9 @@ setenv WM_THIRD_PARTY_DIR $WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
|
|||||||
setenv WM_PROJECT_USER_DIR "$HOME/$WM_PROJECT/$LOGNAME-$WM_PROJECT_VERSION"
|
setenv WM_PROJECT_USER_DIR "$HOME/$WM_PROJECT/$LOGNAME-$WM_PROJECT_VERSION"
|
||||||
|
|
||||||
# [WM_PROJECT_SITE] - Location of site-specific (group) files
|
# [WM_PROJECT_SITE] - Location of site-specific (group) files
|
||||||
# default (unset) implies WM_PROJECT_INST_DIR/site
|
# Default (unset) implies WM_PROJECT_DIR/site
|
||||||
|
# Normally defined in calling environment
|
||||||
|
|
||||||
if ( $?WM_PROJECT_SITE ) then
|
if ( $?WM_PROJECT_SITE ) then
|
||||||
set foamOldDirs="$WM_PROJECT_SITE $foamOldDirs"
|
set foamOldDirs="$WM_PROJECT_SITE $foamOldDirs"
|
||||||
if ( ! -d "$WM_PROJECT_SITE" ) unsetenv WM_PROJECT_SITE
|
if ( ! -d "$WM_PROJECT_SITE" ) unsetenv WM_PROJECT_SITE
|
||||||
|
|||||||
@ -68,7 +68,7 @@ static inline bool userResourceDir(Foam::fileName& queried)
|
|||||||
// Corresponds to foamEtcFile -mode=g
|
// Corresponds to foamEtcFile -mode=g
|
||||||
// Looks for
|
// Looks for
|
||||||
// - $WM_PROJECT_SITE
|
// - $WM_PROJECT_SITE
|
||||||
// - $WM_PROJECT_INST_DIR/site
|
// - $WM_PROJECT_DIR/site
|
||||||
static inline bool groupResourceDir(Foam::fileName& queried)
|
static inline bool groupResourceDir(Foam::fileName& queried)
|
||||||
{
|
{
|
||||||
#ifdef FOAM_RESOURCE_SITE_ENVNAME
|
#ifdef FOAM_RESOURCE_SITE_ENVNAME
|
||||||
|
|||||||
@ -71,7 +71,7 @@ fileNameList findEtcDirs
|
|||||||
//
|
//
|
||||||
// \note Treatment of empty or undefined variables
|
// \note Treatment of empty or undefined variables
|
||||||
// - \b \$WM_PROJECT_VERSION : Use compile-time value of OPENFOAM
|
// - \b \$WM_PROJECT_VERSION : Use compile-time value of OPENFOAM
|
||||||
// - \b \$WM_PROJECT_SITE : Use $WM_PROJECT_INST_DIR/site
|
// - \b \$WM_PROJECT_SITE : Use $WM_PROJECT_DIR/site
|
||||||
//
|
//
|
||||||
// \return The list of full paths of all the matching files or
|
// \return The list of full paths of all the matching files or
|
||||||
// an empty list if the name cannot be found.
|
// an empty list if the name cannot be found.
|
||||||
|
|||||||
@ -66,14 +66,9 @@ SourceFiles
|
|||||||
//- when the directory corresponding to FOAM_RESOURCE_SITE_ENVNAME is empty.
|
//- when the directory corresponding to FOAM_RESOURCE_SITE_ENVNAME is empty.
|
||||||
// The fallback search appends "/site" to the directory.
|
// The fallback search appends "/site" to the directory.
|
||||||
//
|
//
|
||||||
// Default: "WM_PROJECT_INST_DIR"
|
// Default: "WM_PROJECT_DIR"
|
||||||
//
|
|
||||||
// \note If packaging OpenFOAM into a single directory (eg, spack, EasyBuild),
|
|
||||||
// this should be changed to "WM_PROJECT_DIR" to avoid searching within
|
|
||||||
// the prefix (parent) directory.
|
|
||||||
//
|
|
||||||
// Used by foamEtcFiles() and stringOps::expand()
|
// Used by foamEtcFiles() and stringOps::expand()
|
||||||
#define FOAM_RESOURCE_SITE_FALLBACK_ENVNAME "WM_PROJECT_INST_DIR"
|
#define FOAM_RESOURCE_SITE_FALLBACK_ENVNAME "WM_PROJECT_DIR"
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|||||||
Reference in New Issue
Block a user