ENH: additional handling of questionable bad FOAM_EXT_LIBBIN values

- if FOAM_EXT_LIBBIN is unset and some scripts set this to /usr/lib*
  as a fallback (eg, to avoid an undefined value) this will cause a
  system library to be found before appropriate *_ARCH_PATH entry.

  This was noticed during a scotch compilation without third-party:
  resulting in the system library (/usr/lib64/libscotch.so) to be found
  instead of the SCOTCH_ARCH_PATH location
  (/usr/lib64/mpi/gcc/openmpi/lib64/).

  Simply changing the search order doesn't work for use, since we wish
  to retain a preference for any dynamic libraries discovered in a
  real FOAM_EXT_LIBBIN.

  Circumvent these issues by only taking libraries from
  FOAM_EXT_LIBBIN if it also points to a location within ThirdParty.
This commit is contained in:
Mark Olesen
2018-11-27 12:23:11 +01:00
parent 38d3a36c2d
commit 9065346a05
13 changed files with 33 additions and 24 deletions

View File

@ -79,9 +79,8 @@ have_adios2()
then
header=$(findFirstFile $ADIOS2_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$ADIOS2_ARCH_PATH/lib/$library \
$ADIOS2_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
)

View File

@ -74,9 +74,8 @@ have_boost()
then
header=$(findFirstFile $BOOST_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$BOOST_ARCH_PATH/lib/$library \
$BOOST_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
)

View File

@ -80,9 +80,8 @@ have_ccmio()
then
header=$(findFirstFile $CCMIO_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$CCMIO_ARCH_PATH/lib/$static \
$CCMIO_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \
)

View File

@ -74,9 +74,8 @@ have_cgal()
then
header=$(findFirstFile $CGAL_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$CGAL_ARCH_PATH/lib/$library \
$CGAL_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
)

View File

@ -75,9 +75,8 @@ have_fftw()
then
header=$(findFirstFile $FFTW_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$FFTW_ARCH_PATH/lib/$static \
$FFTW_ARCH_PATH/lib/$library \
$FFTW_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \

View File

@ -82,9 +82,8 @@ have_hypre()
then
header=$(findFirstFile $HYPRE_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$HYPRE_ARCH_PATH/lib/$library \
$HYPRE_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
)

View File

@ -80,9 +80,8 @@ have_kahip()
then
header=$(findFirstFile $KAHIP_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$KAHIP_ARCH_PATH/lib/$static \
$KAHIP_ARCH_PATH/lib/$library \
$KAHIP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \

View File

@ -81,9 +81,8 @@ have_metis()
then
header=$(findFirstFile $METIS_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$METIS_ARCH_PATH/lib/$static \
$METIS_ARCH_PATH/lib/$library \
$METIS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \

View File

@ -81,9 +81,8 @@ have_mgridgen()
then
header=$(findFirstFile $MGRIDGEN_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$MGRIDGEN_ARCH_PATH/lib/$static \
$MGRIDGEN_ARCH_PATH/lib/$library \
$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \

View File

@ -82,9 +82,8 @@ have_petsc()
then
header=$(findFirstFile $PETSC_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$PETSC_ARCH_PATH/lib/$library \
$PETSC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
)

View File

@ -81,9 +81,8 @@ have_scotch()
then
header=$(findFirstFile $SCOTCH_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$SCOTCH_ARCH_PATH/lib/$static \
$SCOTCH_ARCH_PATH/lib/$library \
$SCOTCH_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \

View File

@ -80,9 +80,8 @@ have_zoltan()
then
header=$(findFirstFile $ZOLTAN_ARCH_PATH/include/$header)
# FOAM_EXT_LIBBIN is allowed to be unset
library=$(findFirstFile \
$FOAM_EXT_LIBBIN/$library \
"$(thirdExtLib $library)" \
$ZOLTAN_ARCH_PATH/lib/$static \
$ZOLTAN_ARCH_PATH/lib/$library \
$ZOLTAN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$static \

View File

@ -21,6 +21,7 @@
# isSystem
# isAbsdir, hasAbsdir
# findFirstFile
# thirdExtLib
#
# Variables provided
# extLiba
@ -104,6 +105,26 @@ then
return 2
}
# Check for existence of file in FOAM_EXT_LIBBIN,
# but not if either file or FOAM_EXT_LIBBIN are empty or
# if the FOAM_EXT_LIBBIN is not located in the ThirdParty directory
#
# On success, echoes the resolved file and returns 0, otherwise returns 2
thirdExtLib()
{
local file="$FOAM_EXT_LIBBIN/$1"
if [ -n "$1" ] && \
[ -n "$FOAM_EXT_LIBBIN" ] && \
[ -n "$WM_THIRD_PARTY_DIR" ] && \
[ -f "$file" -a -r "$file" ] && \
[ "${FOAM_EXT_LIBBIN#$WM_THIRD_PARTY_DIR}" != "$FOAM_EXT_LIBBIN" ]
then
echo "$file"
else
return 2
fi
}
fi