mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
CONFIG: adjust ordering of library paths (#2200)
- previously OpenFOAM library paths were set before adding in MPI-specific elements. However, this may mask some libraries. | New library order | Old library order | |---------------------|---------------------| | user-lib (serial) | various 3rd-party | | site-lib (serial) | foam-lib (mpi) | | foam-lib (mpi) | ext-lib (mpi) | | foam-lib (serial) | system mpi-libs | | ext-lib (mpi) | user-lib (serial) | | ext-lib (serial) | site-lib (serial) | | various 3rd-party | foam-lib (serial) | | system mpi-libs | ext-lib (serial) | | dummy | dummy |
This commit is contained in:
@ -379,11 +379,9 @@ endsw
|
|||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Final
|
|
||||||
|
|
||||||
# A real (non-dummy) MPI
|
# Report
|
||||||
if ( "$FOAM_MPI" != dummy ) then
|
if ($?FOAM_VERBOSE && $?prompt) then
|
||||||
if ($?FOAM_VERBOSE && $?prompt) then
|
|
||||||
echo "Using mpi type : $WM_MPLIB"
|
echo "Using mpi type : $WM_MPLIB"
|
||||||
echo " FOAM_MPI : $FOAM_MPI"
|
echo " FOAM_MPI : $FOAM_MPI"
|
||||||
if ( "${MPI_ARCH_PATH}" == "" ) then
|
if ( "${MPI_ARCH_PATH}" == "" ) then
|
||||||
@ -391,17 +389,8 @@ if ( "$FOAM_MPI" != dummy ) then
|
|||||||
else
|
else
|
||||||
echo " prefix : $MPI_ARCH_PATH"
|
echo " prefix : $MPI_ARCH_PATH"
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
# OpenFOAM library interface to (non-dummy) MPI
|
|
||||||
if ( $?FOAM_EXT_LIBBIN ) then
|
|
||||||
# External libraries (can be unset)
|
|
||||||
_foamAddLib "${FOAM_EXT_LIBBIN}/${FOAM_MPI}"
|
|
||||||
endif
|
|
||||||
_foamAddLib "${FOAM_LIBBIN}/${FOAM_MPI}"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
unset _foamMpiPrefixDir _foamMpiWarning _foamMpiVersion
|
unset _foamMpiPrefixDir _foamMpiWarning _foamMpiVersion
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
# Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||||
@ -177,14 +177,10 @@ _foamAddLib "$FOAM_LIBBIN/dummy"
|
|||||||
# External (ThirdParty) libraries. Also allowed to be unset
|
# External (ThirdParty) libraries. Also allowed to be unset
|
||||||
if ( -d "$WM_THIRD_PARTY_DIR" ) then
|
if ( -d "$WM_THIRD_PARTY_DIR" ) then
|
||||||
setenv FOAM_EXT_LIBBIN "$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/lib"
|
setenv FOAM_EXT_LIBBIN "$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/lib"
|
||||||
_foamAddLib "$FOAM_EXT_LIBBIN"
|
|
||||||
else
|
else
|
||||||
unsetenv FOAM_EXT_LIBBIN
|
unsetenv FOAM_EXT_LIBBIN
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# OpenFOAM libraries (user, group, standard)
|
|
||||||
_foamAddLib "${FOAM_USER_LIBBIN}:${FOAM_SITE_LIBBIN}:${FOAM_LIBBIN}"
|
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -133,6 +133,9 @@ while ( $#argv > 0 )
|
|||||||
shift
|
shift
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
# Verify FOAM_CONFIG_ETC (from calling environment or from prefs)
|
# Verify FOAM_CONFIG_ETC (from calling environment or from prefs)
|
||||||
if ( $?FOAM_CONFIG_ETC ) then
|
if ( $?FOAM_CONFIG_ETC ) then
|
||||||
if ( "$FOAM_CONFIG_ETC" == "etc" || "$FOAM_CONFIG_ETC" == "$WM_PROJECT_DIR/etc" ) then
|
if ( "$FOAM_CONFIG_ETC" == "etc" || "$FOAM_CONFIG_ETC" == "$WM_PROJECT_DIR/etc" ) then
|
||||||
@ -143,8 +146,8 @@ endif
|
|||||||
|
|
||||||
|
|
||||||
# Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH)
|
# Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH)
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# - avoid local variables shadowing setenv variables
|
||||||
# Prevent local variables from shadowing setenv variables
|
|
||||||
unset PATH MANPATH LD_LIBRARY_PATH DYLD_LIBRARY_PATH
|
unset PATH MANPATH LD_LIBRARY_PATH DYLD_LIBRARY_PATH
|
||||||
if (! $?MANPATH ) setenv MANPATH
|
if (! $?MANPATH ) setenv MANPATH
|
||||||
if (! $?LD_LIBRARY_PATH ) setenv LD_LIBRARY_PATH
|
if (! $?LD_LIBRARY_PATH ) setenv LD_LIBRARY_PATH
|
||||||
@ -153,12 +156,11 @@ _foamClean PATH "$foamOldDirs"
|
|||||||
_foamClean MANPATH "$foamOldDirs"
|
_foamClean MANPATH "$foamOldDirs"
|
||||||
_foamClean LD_LIBRARY_PATH "$foamOldDirs"
|
_foamClean LD_LIBRARY_PATH "$foamOldDirs"
|
||||||
|
|
||||||
# Setup for OpenFOAM compilation etc
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
_foamEtc -config settings
|
|
||||||
|
|
||||||
# Setup for third-party packages
|
#------------------------------------------------------------------------------
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# Base setup (OpenFOAM compilation), MPI and third-party packages
|
||||||
|
|
||||||
|
_foamEtc -config settings
|
||||||
_foamEtc -config mpi
|
_foamEtc -config mpi
|
||||||
_foamEtc -config paraview -- "$FOAM_SETTINGS" # Pass through for evaluation
|
_foamEtc -config paraview -- "$FOAM_SETTINGS" # Pass through for evaluation
|
||||||
_foamEtc -config vtk
|
_foamEtc -config vtk
|
||||||
@ -166,6 +168,30 @@ _foamEtc -config adios2
|
|||||||
_foamEtc -config CGAL
|
_foamEtc -config CGAL
|
||||||
_foamEtc -config FFTW
|
_foamEtc -config FFTW
|
||||||
|
|
||||||
|
if (! $?FOAM_MPI ) then
|
||||||
|
setenv FOAM_MPI dummy # Fallback value
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Finalize library paths
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# ThirdParty serial and mpi-specific libraries
|
||||||
|
if ( $?FOAM_EXT_LIBBIN ) then
|
||||||
|
_foamAddLib "${FOAM_EXT_LIBBIN}"
|
||||||
|
if ( "$FOAM_MPI" != dummy ) then
|
||||||
|
_foamAddLib "${FOAM_EXT_LIBBIN}/${FOAM_MPI}"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# OpenFOAM serial and mpi-specific libraries
|
||||||
|
_foamAddLib "$FOAM_LIBBIN"
|
||||||
|
if ( "$FOAM_MPI" != dummy ) then
|
||||||
|
_foamAddLib "${FOAM_LIBBIN}/${FOAM_MPI}"
|
||||||
|
endif
|
||||||
|
|
||||||
|
# OpenFOAM user, group libraries
|
||||||
|
_foamAddLib "${FOAM_USER_LIBBIN}:${FOAM_SITE_LIBBIN}"
|
||||||
|
|
||||||
if ( -d "$WM_PROJECT_DIR/doc/man1" ) then
|
if ( -d "$WM_PROJECT_DIR/doc/man1" ) then
|
||||||
_foamAddMan "$WM_PROJECT_DIR/doc"
|
_foamAddMan "$WM_PROJECT_DIR/doc"
|
||||||
endif
|
endif
|
||||||
@ -177,8 +203,9 @@ if ($?prompt) then
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Clean environment paths again. Only remove duplicates
|
#------------------------------------------------------------------------------
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
# Remove duplicates from environment paths
|
||||||
|
|
||||||
_foamClean PATH
|
_foamClean PATH
|
||||||
_foamClean MANPATH
|
_foamClean MANPATH
|
||||||
|
|||||||
@ -434,30 +434,14 @@ esac
|
|||||||
# Ensure MPI_ARCH_PATH is marked for export
|
# Ensure MPI_ARCH_PATH is marked for export
|
||||||
[ -n "$MPI_ARCH_PATH" ] && export MPI_ARCH_PATH
|
[ -n "$MPI_ARCH_PATH" ] && export MPI_ARCH_PATH
|
||||||
|
|
||||||
|
# Report
|
||||||
# A real (non-dummy) MPI
|
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
||||||
if [ "$FOAM_MPI" != dummy ]
|
|
||||||
then
|
then
|
||||||
if [ -n "$FOAM_VERBOSE" ] && [ -n "$PS1" ]
|
|
||||||
then
|
|
||||||
echo "Using mpi type : $WM_MPLIB" 1>&2
|
echo "Using mpi type : $WM_MPLIB" 1>&2
|
||||||
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
echo " FOAM_MPI : $FOAM_MPI" 1>&2
|
||||||
echo " prefix : ${MPI_ARCH_PATH:-unset}" 1>&2
|
echo " prefix : ${MPI_ARCH_PATH:-[unset]}" 1>&2
|
||||||
fi
|
|
||||||
|
|
||||||
# OpenFOAM library interface to (non-dummy) MPI
|
|
||||||
if command -v _foamAddLib >/dev/null
|
|
||||||
then
|
|
||||||
if [ -n "$FOAM_EXT_LIBBIN" ]
|
|
||||||
then
|
|
||||||
# External libraries (can be unset)
|
|
||||||
_foamAddLib "$FOAM_EXT_LIBBIN/$FOAM_MPI"
|
|
||||||
fi
|
|
||||||
_foamAddLib "$FOAM_LIBBIN/$FOAM_MPI"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
unset _foamMpiPrefixDir _foamMpiVersion _foamMpiWarning
|
unset _foamMpiPrefixDir _foamMpiVersion _foamMpiWarning
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
# Copyright (C) 2016-2020 OpenCFD Ltd.
|
# Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||||
@ -178,14 +178,10 @@ _foamAddLib "$FOAM_LIBBIN/dummy"
|
|||||||
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
if [ -d "$WM_THIRD_PARTY_DIR" ]
|
||||||
then
|
then
|
||||||
export FOAM_EXT_LIBBIN="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/lib"
|
export FOAM_EXT_LIBBIN="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/lib"
|
||||||
_foamAddLib "$FOAM_EXT_LIBBIN"
|
|
||||||
else
|
else
|
||||||
unset FOAM_EXT_LIBBIN
|
unset FOAM_EXT_LIBBIN
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# OpenFOAM libraries (user, group, standard)
|
|
||||||
_foamAddLib "$FOAM_USER_LIBBIN:$FOAM_SITE_LIBBIN:$FOAM_LIBBIN"
|
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -181,19 +181,17 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Clean standard environment variables (PATH, MANPATH, LD_LIBRARY_PATH)
|
# Clean standard environment variables
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
export PATH MANPATH LD_LIBRARY_PATH
|
export PATH MANPATH LD_LIBRARY_PATH
|
||||||
_foamClean PATH "$foamOldDirs"
|
_foamClean PATH "$foamOldDirs"
|
||||||
_foamClean MANPATH "$foamOldDirs"
|
_foamClean MANPATH "$foamOldDirs"
|
||||||
_foamClean LD_LIBRARY_PATH "$foamOldDirs"
|
_foamClean LD_LIBRARY_PATH "$foamOldDirs"
|
||||||
|
|
||||||
# Setup for OpenFOAM compilation etc
|
#------------------------------------------------------------------------------
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# Base setup (OpenFOAM compilation), MPI and third-party packages
|
||||||
_foamEtc -config settings
|
|
||||||
|
|
||||||
# Setup for third-party packages
|
_foamEtc -config settings
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
_foamEtc -config mpi
|
_foamEtc -config mpi
|
||||||
_foamEtc -config paraview -- "$@" # Pass through for evaluation
|
_foamEtc -config paraview -- "$@" # Pass through for evaluation
|
||||||
_foamEtc -config vtk
|
_foamEtc -config vtk
|
||||||
@ -202,6 +200,30 @@ _foamEtc -config CGAL
|
|||||||
_foamEtc -config scotch
|
_foamEtc -config scotch
|
||||||
_foamEtc -config FFTW
|
_foamEtc -config FFTW
|
||||||
|
|
||||||
|
|
||||||
|
# Finalize library paths
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# ThirdParty serial and mpi-specific libraries
|
||||||
|
if [ -n "$FOAM_EXT_LIBBIN" ]
|
||||||
|
then
|
||||||
|
_foamAddLib "$FOAM_EXT_LIBBIN"
|
||||||
|
if [ "${FOAM_MPI:-dummy}" != dummy ]
|
||||||
|
then
|
||||||
|
_foamAddLib "$FOAM_EXT_LIBBIN/$FOAM_MPI"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# OpenFOAM serial and mpi-specific libraries
|
||||||
|
_foamAddLib "$FOAM_LIBBIN"
|
||||||
|
if [ "${FOAM_MPI:-dummy}" != dummy ]
|
||||||
|
then
|
||||||
|
_foamAddLib "$FOAM_LIBBIN/$FOAM_MPI"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# OpenFOAM user, group libraries
|
||||||
|
_foamAddLib "$FOAM_USER_LIBBIN:$FOAM_SITE_LIBBIN"
|
||||||
|
|
||||||
if [ -d "$WM_PROJECT_DIR/doc/man1" ]
|
if [ -d "$WM_PROJECT_DIR/doc/man1" ]
|
||||||
then
|
then
|
||||||
_foamAddMan "$WM_PROJECT_DIR/doc"
|
_foamAddMan "$WM_PROJECT_DIR/doc"
|
||||||
@ -215,8 +237,9 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Clean environment paths again. Only remove duplicates
|
#------------------------------------------------------------------------------
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
# Remove duplicates from environment paths
|
||||||
export PATH MANPATH LD_LIBRARY_PATH
|
export PATH MANPATH LD_LIBRARY_PATH
|
||||||
|
|
||||||
_foamClean PATH
|
_foamClean PATH
|
||||||
@ -229,7 +252,6 @@ then
|
|||||||
MANPATH="${MANPATH}:"
|
MANPATH="${MANPATH}:"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Cleanup temporary information
|
# Cleanup temporary information
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user