ENH: relocate common functions into ThirdPartyFunctions

- Qualify some paraview-specific functions with 'ParaView' in the name.
  This helps with code-reuse.

STYLE: use lib$WM_COMPILER_LIB_ARCH instead of explicit lib64
This commit is contained in:
mark
2016-07-27 18:33:33 +02:00
parent 5de10e0e5a
commit 5dd6900492
5 changed files with 184 additions and 226 deletions

View File

@ -39,7 +39,7 @@
# ParaView_BINARY_DIR : location of the build # ParaView_BINARY_DIR : location of the build
# ParaView_DIR : location of the installed program # ParaView_DIR : location of the installed program
# #
setDirs() setParaViewDirs()
{ {
ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
@ -74,10 +74,10 @@ setDirs()
# #
# $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0 # $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0
# #
setVersion() setParaViewVersion()
{ {
[ $# -gt 0 ] || { [ $# -gt 0 ] || {
echo "Error: function setVersion() called without an argument" echo "Error: function setParaViewVersion() called without an argument"
exit 1 exit 1
} }
@ -241,7 +241,7 @@ addMesaSupport()
then then
OBJ_ADD="$OBJ_ADD-mesa" OBJ_ADD="$OBJ_ADD-mesa"
addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON" addCMakeVariable "VTK_OPENGL_HAS_OSMESA:BOOL=ON"
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE" addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY" addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
@ -267,54 +267,14 @@ addQtSupport()
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON" addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
unset qmakeExe local qmake=$(findQtMake)
if [ -n "$QMAKE_PATH" ]
then
if [ -d "$QMAKE_PATH" ]
then
if [ -x "$QMAKE_PATH/qmake" ]
then
qmakeExe=$QMAKE_PATH/qmake
elif [ -x "$QMAKE_PATH/bin/qmake" ]
then
qmakeExe=$QMAKE_PATH/bin/qmake
fi
elif [ -x "$QMAKE_PATH" ]
then
qmakeExe=$QMAKE_PATH
fi
if [ -n "$qmakeExe" ]
then
# Use absolute path
if [ "${qmakeExe#/}" = "$qmakeExe" ]
then
qmakeExe="$(cd ${qmakeExe%/qmake} 2>/dev/null && pwd)/qmake"
fi
else
echo
echo "qmake not found under specified QMAKE_PATH"
echo " QMAKE_PATH=$QMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi
# Default to using qmake from the path
if [ -n "$qmakeExe" ]
then
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmakeExe"
else
qmakeExe=qmake
fi
# Check qmake can be found # Check qmake can be found
if type $qmakeExe >/dev/null 2>&1 if type $qmake >/dev/null 2>&1
then then
# Check the Qt version selected # Check the Qt version selected
# parse -> "Using Qt version X.Y.Z in ..." # parse -> "Using Qt version X.Y.Z in ..."
QtVersion=$($qmakeExe -query QT_VERSION) QtVersion=$($qmake -query QT_VERSION)
# Split Major.Minor.Revision - could also use IFS hacking # Split Major.Minor.Revision - could also use IFS hacking
set -- $(echo "$QtVersion" | sed -e 's/\./ /g') set -- $(echo "$QtVersion" | sed -e 's/\./ /g')
@ -343,44 +303,7 @@ addQtSupport()
# #
configParaView() configParaView()
{ {
unset cmakeExe local cmake=$(findCMake)
if [ -n "$CMAKE_PATH" ]
then
if [ -d "$CMAKE_PATH" ]
then
if [ -x "$CMAKE_PATH/cmake" ]
then
cmakeExe=$CMAKE_PATH/cmake
elif [ -x "$CMAKE_PATH/bin/cmake" ]
then
cmakeExe=$CMAKE_PATH/bin/cmake
fi
elif [ -x "$CMAKE_PATH" ]
then
cmakeExe=$CMAKE_PATH
fi
if [ -n "$cmakeExe" ]
then
# Use absolute path
if [ "${cmakeExe#/}" = "$cmakeExe" ]
then
cmakeExe="$(cd ${cmakeExe%/cmake} 2>/dev/null && pwd)/cmake"
fi
else
echo
echo "cmake not found under specified CMAKE_PATH"
echo " CMAKE_PATH=$CMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi
# Default to using cmake from the path
if [ -z "$cmakeExe" ]
then
cmakeExe=cmake
fi
# Remove any existing build folder and recreate # Remove any existing build folder and recreate
if [ -d $ParaView_BINARY_DIR ] if [ -d $ParaView_BINARY_DIR ]
@ -403,9 +326,10 @@ configParaView()
echo " Source : $ParaView_SOURCE_DIR" echo " Source : $ParaView_SOURCE_DIR"
echo " Build : $ParaView_BINARY_DIR" echo " Build : $ParaView_BINARY_DIR"
echo " Target : $ParaView_DIR" echo " Target : $ParaView_DIR"
echo " Cmake : $cmake"
echo "----" echo "----"
echo echo
echo "$cmakeExe" \ echo "$cmake" \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \ -DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \ $CMAKE_VARIABLES \
$ParaView_SOURCE_DIR $ParaView_SOURCE_DIR
@ -414,7 +338,7 @@ configParaView()
echo echo
# Run cmake to create Makefiles # Run cmake to create Makefiles
$cmakeExe -Wno-dev \ $cmake -Wno-dev \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \ -DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \ $CMAKE_VARIABLES \
$ParaView_SOURCE_DIR $ParaView_SOURCE_DIR

View File

@ -39,7 +39,7 @@
# ParaView_BINARY_DIR : location of the build # ParaView_BINARY_DIR : location of the build
# ParaView_DIR : location of the installed program # ParaView_DIR : location of the installed program
# #
setDirs() setParaViewDirs()
{ {
ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION ParaView_SOURCE_DIR=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
@ -74,10 +74,10 @@ setDirs()
# #
# $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0 # $1 can contain something something like 4.4.0, paraview-4.4.0, ParaView-4.0.0
# #
setVersion() setParaViewVersion()
{ {
[ $# -gt 0 ] || { [ $# -gt 0 ] || {
echo "Error: function setVersion() called without an argument" echo "Error: function setParaViewVersion() called without an argument"
exit 1 exit 1
} }
@ -241,7 +241,7 @@ addMesaSupport()
then then
OBJ_ADD="$OBJ_ADD-mesa" OBJ_ADD="$OBJ_ADD-mesa"
addCMakeVariable "VTK_OPENGL_HAS_OSMESA=ON" addCMakeVariable "VTK_OPENGL_HAS_OSMESA:BOOL=ON"
addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE" addCMakeVariable "OSMESA_INCLUDE_DIR=$MESA_INCLUDE"
addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY" addCMakeVariable "OSMESA_LIBRARY=$MESA_LIBRARY"
@ -279,74 +279,20 @@ addQtSupport()
addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON" addCMakeVariable "PARAVIEW_BUILD_QT_GUI=ON"
local candidate local qmake=$(findQtMake)
local foundExe
if [ -n "$QMAKE_PATH" ] # From somewhere other than in the path
if [ "${qmake:=qmake}" != qmake ]
then then
# check as directory addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$qmake"
if [ -d "$QMAKE_PATH" ]
then
for candidate in \
$QMAKE_PATH/qmake \
$QMAKE_PATH/bin/qmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
# check as file, include ThirdParty installation in the search
if [ -z "$foundExe" ]
then
for candidate in \
$QMAKE_PATH \
$installBASE/$QMAKE_PATH/bin/qmake \
$installBASE/qt-$QMAKE_PATH/bin/qmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
if [ -n "$foundExe" ]
then
# Use absolute path
if [ "${foundExe#/}" = "$foundExe" ]
then
foundExe="$(cd ${foundExe%/qmake} 2>/dev/null && pwd)/qmake"
fi
else
echo
echo "qmake not found under specified QMAKE_PATH"
echo " QMAKE_PATH=$QMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi fi
# Fallback to qmake from the path
if [ -n "$foundExe" ]
then
addCMakeVariable "QT_QMAKE_EXECUTABLE:FILEPATH=$foundExe"
else
foundExe=qmake
fi
# Check qmake can be found # Check qmake can be found
if type $foundExe >/dev/null 2>&1 if type $qmake >/dev/null 2>&1
then then
# Check the Qt version selected # Check the Qt version selected
# parse -> "Using Qt version X.Y.Z in ..." # parse -> "Using Qt version X.Y.Z in ..."
QtVersion=$($foundExe -query QT_VERSION) QtVersion=$($qmake -query QT_VERSION)
# Split Major.Minor.Revision - could also use IFS hacking # Split Major.Minor.Revision - could also use IFS hacking
set -- $(echo "$QtVersion" | sed -e 's/\./ /g') set -- $(echo "$QtVersion" | sed -e 's/\./ /g')
@ -384,61 +330,7 @@ patchParaView()
# #
configParaView() configParaView()
{ {
local candidate local cmake=$(findCMake)
local foundExe
if [ -n "$CMAKE_PATH" ]
then
# check as directory
if [ -d "$CMAKE_PATH" ]
then
for candidate in \
$CMAKE_PATH/cmake \
$CMAKE_PATH/bin/cmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
# check as file, include ThirdParty installation in the search
if [ -z "$foundExe" ]
then
for candidate in \
$CMAKE_PATH \
$installBASE/$CMAKE_PATH/bin/cmake \
$installBASE/cmake-$CMAKE_PATH/bin/cmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
if [ -n "$foundExe" ]
then
# Use absolute path
if [ "${foundExe#/}" = "$foundExe" ]
then
foundExe="$(cd ${foundExe%/cmake} 2>/dev/null && pwd)/cmake"
fi
else
echo
echo "cmake not found under specified CMAKE_PATH"
echo " CMAKE_PATH=$CMAKE_PATH"
echo "leaving unspecified"
echo
fi
fi
# Fallback to cmake from the path
[ -n "$foundExe" ] || foundExe=cmake
# Remove any existing build folder and recreate # Remove any existing build folder and recreate
if [ -d $ParaView_BINARY_DIR ] if [ -d $ParaView_BINARY_DIR ]
@ -464,10 +356,10 @@ configParaView()
echo " Build : $ParaView_BINARY_DIR" echo " Build : $ParaView_BINARY_DIR"
echo " Target : $ParaView_DIR" echo " Target : $ParaView_DIR"
echo " Build type : $buildType" echo " Build type : $buildType"
echo " Cmake : $foundExe" echo " Cmake : $cmake"
echo "----" echo "----"
echo echo
echo "$foundExe" \ echo "$cmake" \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \ -DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \ $CMAKE_VARIABLES \
$ParaView_SOURCE_DIR $ParaView_SOURCE_DIR
@ -476,7 +368,7 @@ configParaView()
echo echo
# Run cmake to create Makefiles # Run cmake to create Makefiles
$foundExe \ $cmake \
-DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \ -DCMAKE_INSTALL_PREFIX:PATH=$ParaView_DIR \
$CMAKE_VARIABLES \ $CMAKE_VARIABLES \
$ParaView_SOURCE_DIR $ParaView_SOURCE_DIR

View File

@ -85,6 +85,142 @@ _foamIsSystem()
} }
#
# try to locate cmake according to the CMAKE_PATH
# or just use what is found in the path
#
findCMake()
{
local candidate
local foundExe
if [ -n "$CMAKE_PATH" ]
then
# check as directory
if [ -d "$CMAKE_PATH" ]
then
for candidate in \
$CMAKE_PATH/cmake \
$CMAKE_PATH/bin/cmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
# check as file, include ThirdParty installation in the search
if [ -z "$foundExe" ]
then
for candidate in \
$CMAKE_PATH \
$installBASE/$CMAKE_PATH/bin/cmake \
$installBASE/cmake-$CMAKE_PATH/bin/cmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
if [ -n "$foundExe" ]
then
# Use absolute path
if [ "${foundExe#/}" = "$foundExe" ]
then
foundExe="$(cd ${foundExe%/cmake} 2>/dev/null && pwd)/cmake"
fi
echo "$foundExe"
return 0
else
cat << NOT_FOUND 1>&2
'cmake' not found under specified CMAKE_PATH
CMAKE_PATH=$CMAKE_PATH
reverting to using command from path
NOT_FOUND
fi
fi
# Default is cmake from the path
echo cmake
}
#
# try to locate qmake according to the QMAKE_PATH
# or just use what is found in the path
#
findQtMake()
{
local candidate
local foundExe
if [ -n "$QMAKE_PATH" ]
then
# check as directory
if [ -d "$QMAKE_PATH" ]
then
for candidate in \
$QMAKE_PATH/qmake \
$QMAKE_PATH/bin/qmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
# check as file, include ThirdParty installation in the search
if [ -z "$foundExe" ]
then
for candidate in \
$QMAKE_PATH \
$installBASE/$QMAKE_PATH/bin/qmake \
$installBASE/qt-$QMAKE_PATH/bin/qmake \
;
do
if [ -f "$candidate" -a -x "$candidate" ]
then
foundExe=$candidate
break
fi
done
fi
if [ -n "$foundExe" ]
then
# Use absolute path
if [ "${foundExe#/}" = "$foundExe" ]
then
foundExe="$(cd ${foundExe%/qmake} 2>/dev/null && pwd)/qmake"
fi
echo "$foundExe"
return 0
else
cat << NOT_FOUND 1>&2
'qmake' not found under specified QMAKE_PATH
QMAKE_PATH=$QMAKE_PATH
reverting to using command from path
NOT_FOUND
fi
fi
# Default is qmake from the path
echo qmake
}
# #
# Download file $1 from url $2 into download/ directory # Download file $1 from url $2 into download/ directory
# #

View File

@ -64,12 +64,12 @@ MPI_MAX_PROCS=32
# If it fails, specify the path using the PYTHON_LIBRARY variable # If it fails, specify the path using the PYTHON_LIBRARY variable
withPYTHON=false withPYTHON=false
PYTHON_LIBRARY="" PYTHON_LIBRARY=""
# PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0" # PYTHON_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libpython2.6.so.1.0"
# MESA graphics support: # MESA graphics support:
withMESA=false withMESA=false
MESA_INCLUDE="/usr/include/GL" MESA_INCLUDE="/usr/include/GL"
MESA_LIBRARY="/usr/lib64/libOSMesa.so" MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
# extra QT gui support (useful for some third party apps) # extra QT gui support (useful for some third party apps)
withQT=true withQT=true
@ -113,8 +113,8 @@ options:
-version VER specify an alternative version (current value: $ParaView_VERSION) -version VER specify an alternative version (current value: $ParaView_VERSION)
-major VER specify an alternative major version for special builds -major VER specify an alternative major version for special builds
-buildType NAME specify the build type (default: Release) -buildType NAME specify the build type (default: Release)
-mesa-include DIR -mesa-prefix DIR location of mesa installation (sets -mesa-include, -mesa-lib)
location of mesa headers (current value: ${MESA_INCLUDE:-none}) -mesa-include DIR location of mesa headers (current value: ${MESA_INCLUDE:-none})
-mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none}) -mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none})
-python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none}) -python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none})
-help -help
@ -164,7 +164,7 @@ case "$Script" in *-python*) withPYTHON=true;; esac
case "$Script" in *-qt*) withQT=true;; esac case "$Script" in *-qt*) withQT=true;; esac
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION # Set initial ParaView_MAJOR based on current value of ParaView_VERSION
setVersion ${ParaView_VERSION:-none} setParaViewVersion ${ParaView_VERSION:-none}
# #
# various building stages # various building stages
@ -181,7 +181,7 @@ do
usage usage
;; ;;
[0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version [0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version
setVersion "${1%%/}" setParaViewVersion "${1%%/}"
;; ;;
[A-Z]*=*) # cmake variables [A-Z]*=*) # cmake variables
addCMakeVariable "$1" addCMakeVariable "$1"
@ -235,6 +235,13 @@ do
-no-mesa) -no-mesa)
withMESA=false withMESA=false
;; ;;
-mesa-prefix)
[ "$#" -ge 2 ] || die "'$1' option requires an argument"
withMESA=true
MESA_INCLUDE="${2%%/}/include"
MESA_LIBRARY="${2%%/}/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
shift
;;
-mesa-include) -mesa-include)
[ "$#" -ge 2 ] || die "'$1' option requires an argument" [ "$#" -ge 2 ] || die "'$1' option requires an argument"
MESA_INCLUDE="${2%%/}" MESA_INCLUDE="${2%%/}"
@ -286,7 +293,7 @@ do
;; ;;
-version) -version)
[ "$#" -ge 2 ] || die "'$1' option requires an argument" [ "$#" -ge 2 ] || die "'$1' option requires an argument"
setVersion "${2%%/}" setParaViewVersion "${2%%/}"
shift shift
;; ;;
-major) -major)
@ -344,7 +351,7 @@ addMesaSupport # set MESA-specific options
addGL2Support # new rendering backend addGL2Support # new rendering backend
addQtSupport # add extra Qt support addQtSupport # add extra Qt support
setDirs # where things are or should be put setParaViewDirs # where things are or should be put
# Build and install # Build and install

View File

@ -64,12 +64,12 @@ MPI_MAX_PROCS=32
# If it fails, specify the path using the PYTHON_LIBRARY variable # If it fails, specify the path using the PYTHON_LIBRARY variable
withPYTHON=false withPYTHON=false
PYTHON_LIBRARY="" PYTHON_LIBRARY=""
# PYTHON_LIBRARY="/usr/lib64/libpython2.6.so.1.0" # PYTHON_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libpython2.6.so.1.0"
# MESA graphics support: # MESA graphics support:
withMESA=false withMESA=false
MESA_INCLUDE="/usr/include/GL" MESA_INCLUDE="/usr/include/GL"
MESA_LIBRARY="/usr/lib64/libOSMesa.so" MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so"
# extra QT gui support (useful for some third party apps) # extra QT gui support (useful for some third party apps)
withQT=true withQT=true
@ -107,8 +107,7 @@ options:
-verbose verbose output in Makefiles -verbose verbose output in Makefiles
-version VER specify an alternative version (current value: $ParaView_VERSION) -version VER specify an alternative version (current value: $ParaView_VERSION)
-major VER specify an alternative major version for special builds -major VER specify an alternative major version for special builds
-mesa-include DIR -mesa-include DIR location of mesa headers (current value: ${MESA_INCLUDE:-none})
location of mesa headers (current value: ${MESA_INCLUDE:-none})
-mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none}) -mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none})
-python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none}) -python-lib PATH path to python library (current value: ${PYTHON_LIBRARY:-none})
-help -help
@ -157,7 +156,7 @@ case "$Script" in *-python*) withPYTHON=true;; esac
case "$Script" in *-qt*) withQT=true;; esac case "$Script" in *-qt*) withQT=true;; esac
# Set initial ParaView_MAJOR based on current value of ParaView_VERSION # Set initial ParaView_MAJOR based on current value of ParaView_VERSION
setVersion ${ParaView_VERSION:-none} setParaViewVersion ${ParaView_VERSION:-none}
# #
# various building stages # various building stages
@ -173,7 +172,7 @@ do
usage usage
;; ;;
[0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version [0-9]* | paraview-[0-9]* | ParaView-[0-9]*) # paraview version
setVersion "${1%%/}" setParaViewVersion "${1%%/}"
;; ;;
[A-Z]*=*) # cmake variables [A-Z]*=*) # cmake variables
addCMakeVariable "$1" addCMakeVariable "$1"
@ -265,7 +264,7 @@ do
;; ;;
-version) -version)
[ "$#" -ge 2 ] || die "'$1' option requires an argument" [ "$#" -ge 2 ] || die "'$1' option requires an argument"
setVersion "${2%%/}" setParaViewVersion "${2%%/}"
shift shift
;; ;;
-major) -major)
@ -305,7 +304,7 @@ addPythonSupport # set Python-specific options
addMesaSupport # set MESA-specific options addMesaSupport # set MESA-specific options
addQtSupport # add extra Qt support addQtSupport # add extra Qt support
setDirs # where things are or should be put setParaViewDirs # where things are or should be put
# Build and install # Build and install