From 3f362fd7ec3314968440f55a6caf87f281498e16 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Fri, 16 Dec 2016 08:17:29 +0100
Subject: [PATCH] CONFIG: add config files for VTK, MESA

- sometimes used for off-screen rendering.
  Only add to library-path when they are actually available
---
 bin/tools/foamConfigurePaths | 35 ++++++++++++++----
 etc/bashrc                   |  1 +
 etc/config.csh/unset         |  2 +
 etc/config.csh/vtk           | 67 +++++++++++++++++++++++++++++++++
 etc/config.sh/paraview       |  2 +-
 etc/config.sh/unset          |  2 +
 etc/config.sh/vtk            | 72 ++++++++++++++++++++++++++++++++++++
 etc/cshrc                    |  1 +
 8 files changed, 174 insertions(+), 8 deletions(-)
 create mode 100644 etc/config.csh/vtk
 create mode 100644 etc/config.sh/vtk

diff --git a/bin/tools/foamConfigurePaths b/bin/tools/foamConfigurePaths
index a85cff83f8b..a27cb37219d 100755
--- a/bin/tools/foamConfigurePaths
+++ b/bin/tools/foamConfigurePaths
@@ -53,13 +53,17 @@ usage: ${0##*/}
   -fftwArchPath dir       specify FFTW_ARCH_PATH
   -metis ver              specify METIS_VERSION
   -metisArchPath dir      specify METIS_ARCH_PATH
-  -paraview ver           specify ParaView_VERSION (e.g. 3.12.0)
-  -paraviewInstall dir    specify ParaView_DIR (e.g. /opt/paraviewopenfoam3120)
-  -scotch ver             specify SCOTCH_VERSION (e.g. 6.0.0)
-  -scotchArchPath dir     specify SCOTCH_ARCH_PATH (e.g. /opt/OpenFOAM-scotch-6.0.0/)
+  -paraview ver           specify ParaView_VERSION (eg, 5.0.1)
+  -paraviewInstall dir    specify ParaView_DIR (eg, /opt/paraviewopenfoam3120)
+  -scotch ver             specify SCOTCH_VERSION (eg, scotch_6.0.4)
+  -scotchArchPath dir     specify SCOTCH_ARCH_PATH (eg, /opt/OpenFOAM-scotch_6.0.4)
+  -vtk  ver               specify vtk_version (eg, VTK-7.1.0)
+  -mesa ver               specify mesa_version (eg, mesa-13.0.1)
 
 * Adjust hardcoded installation paths and versions
 
+- unless otherwise specified, the default mpi is SYSTEMOPENMPI
+
 USAGE
     exit 1
 }
@@ -69,9 +73,11 @@ die()
 {
     exec 1>&2
     echo
-    echo "Error: see '${0##*/} -help' for usage"
+    echo "Error encountered:"
     while [ "$#" -ge 1 ]; do echo "    $1"; shift; done
     echo
+    echo "See '${0##*/} -help' for usage"
+    echo
     exit 1
 }
 
@@ -212,7 +218,7 @@ do
         shift
         ;;
 
-    -third[Pp]arty)
+    -[Tt]hird[Pp]arty | -[Tt]hird)
         # Replace WM_COMPILER_TYPE=... and WM_COMPILER=...
         [ "$#" -ge 2 ] || die "'$1' option requires an argument"
         replace etc/bashrc  WM_COMPILER_TYPE ThirdParty  WM_COMPILER "$2"
@@ -220,7 +226,6 @@ do
         shift
         ;;
 
-
     -boost)
         # Replace boost_version=...
         [ "$#" -ge 2 ] || die "'$1' option requires an argument"
@@ -333,6 +338,22 @@ do
         shift
         ;;
 
+    -vtk)
+        # Replace vtk_version=...
+        [ "$#" -ge 2 ] || die "'$1' option requires an argument"
+        replace etc/config.sh/vtk  vtk_version "$2"
+        adjusted=true
+        shift
+        ;;
+
+    -mesa)
+        # Replace mesa_version=...
+        [ "$#" -ge 2 ] || die "'$1' option requires an argument"
+        replace etc/config.sh/vtk  mesa_version "$2"
+        adjusted=true
+        shift
+        ;;
+
     *)
         die "unknown option/argument: '$1'"
         ;;
diff --git a/etc/bashrc b/etc/bashrc
index 0cdf4031ba8..3f5d04e83bf 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -170,6 +170,7 @@ _foamSource $WM_PROJECT_DIR/etc/config.sh/aliases
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/mpi`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview`
+_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/vtk`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/ensight`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/gperftools`
 
diff --git a/etc/config.csh/unset b/etc/config.csh/unset
index 88bdd3454ef..b423a53d98f 100644
--- a/etc/config.csh/unset
+++ b/etc/config.csh/unset
@@ -124,6 +124,7 @@ unsetenv ParaView_INCLUDE_DIR
 unsetenv ParaView_MAJOR
 unsetenv ParaView_VERSION
 unsetenv PV_PLUGIN_PATH
+unsetenv VTK_DIR
 
 #------------------------------------------------------------------------------
 # unset other ThirdParty environment variables
@@ -136,6 +137,7 @@ unsetenv FFTW_ARCH_PATH
 unsetenv GPERFTOOLS_ARCH_PATH
 unsetenv GMP_ARCH_PATH
 unsetenv MPFR_ARCH_PATH
+unsetenv MESA_ARCH_PATH
 unsetenv METIS_ARCH_PATH
 unsetenv SCOTCH_ARCH_PATH
 
diff --git a/etc/config.csh/vtk b/etc/config.csh/vtk
new file mode 100644
index 00000000000..bd39d000ec4
--- /dev/null
+++ b/etc/config.csh/vtk
@@ -0,0 +1,67 @@
+#----------------------------------*-sh-*--------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+#    \\/     M anipulation  |
+#------------------------------------------------------------------------------
+# License
+#     This file is part of OpenFOAM.
+#
+#     OpenFOAM is free software: you can redistribute it and/or modify it
+#     under the terms of the GNU General Public License as published by
+#     the Free Software Foundation, either version 3 of the License, or
+#     (at your option) any later version.
+#
+#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+#     for more details.
+#
+#     You should have received a copy of the GNU General Public License
+#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#
+# File
+#     etc/config.csh/vtk
+#
+# Description
+#     Setup file for VTK (and MESA)
+#     Sourced from OpenFOAM-<VERSION>/etc/cshrc
+#
+#     The library path is not adjusted with the paths specified here do not exist
+#
+# Note
+#     When building OpenFOAM, any changes made here MUST be made in the
+#     equivalent config.sh version too, since that is the one which will
+#     be used during the build process.
+#
+#------------------------------------------------------------------------------
+
+set vtk_version=VTK-7.1.0
+set mesa_version=mesa-13.0.1
+
+setenv VTK_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$vtk_version
+setenv MESA_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa_version
+
+#------------------------------------------------------------------------------
+if ($?FOAM_VERBOSE && $?prompt) then
+    echo "Using vtk  ($vtk_version)  ->  $VTK_ARCH_PATH"
+    echo "Using mesa ($mesa_version)  ->  $MESA_ARCH_PATH"
+endif
+
+# Set paths if binaries are present
+if ( -r $VTK_DIR ) then
+    _foamAddLib $VTK_DIR/lib$WM_COMPILER_LIB_ARCH
+else
+    unset VTK_DIR
+endif
+
+if ( -r $MESA_ARCH_PATH ) then
+    _foamAddLib $MESA_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+else
+    unset MESA_ARCH_PATH
+endif
+
+unset vtk_version mesa_version
+
+#------------------------------------------------------------------------------
diff --git a/etc/config.sh/paraview b/etc/config.sh/paraview
index a8df5e7d9c9..188d505b0f1 100644
--- a/etc/config.sh/paraview
+++ b/etc/config.sh/paraview
@@ -119,7 +119,7 @@ then
 
     export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$pvName
 
-    # Set paths if binaries or source are present
+    # Set paths if binaries are present
     if [ -r $ParaView_DIR ]
     then
         pvLibDir=$ParaView_DIR/lib/$pvMajor
diff --git a/etc/config.sh/unset b/etc/config.sh/unset
index e7b834baeb7..6bc4a517ab8 100644
--- a/etc/config.sh/unset
+++ b/etc/config.sh/unset
@@ -120,6 +120,7 @@ unset ParaView_INCLUDE_DIR
 unset ParaView_MAJOR
 unset ParaView_VERSION
 unset PV_PLUGIN_PATH
+unset VTK_DIR
 
 #------------------------------------------------------------------------------
 # unset other ThirdParty environment variables
@@ -132,6 +133,7 @@ unset FFTW_ARCH_PATH
 unset GPERFTOOLS_ARCH_PATH
 unset GMP_ARCH_PATH
 unset MPFR_ARCH_PATH
+unset MESA_ARCH_PATH
 unset METIS_ARCH_PATH
 unset SCOTCH_ARCH_PATH
 
diff --git a/etc/config.sh/vtk b/etc/config.sh/vtk
new file mode 100644
index 00000000000..67ce07dfc72
--- /dev/null
+++ b/etc/config.sh/vtk
@@ -0,0 +1,72 @@
+#----------------------------------*-sh-*--------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+#    \\/     M anipulation  |
+#------------------------------------------------------------------------------
+# License
+#     This file is part of OpenFOAM.
+#
+#     OpenFOAM is free software: you can redistribute it and/or modify it
+#     under the terms of the GNU General Public License as published by
+#     the Free Software Foundation, either version 3 of the License, or
+#     (at your option) any later version.
+#
+#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+#     for more details.
+#
+#     You should have received a copy of the GNU General Public License
+#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+#
+# File
+#     etc/config.sh/vtk
+#
+# Description
+#     Setup file for VTK (and MESA)
+#     Sourced from OpenFOAM-<VERSION>/etc/bashrc
+#
+#     The library path is not adjusted with the paths specified here do not exist
+#
+# Note
+#     When _foamAddLib is unset
+#         - the vtk_version, mesa_version variables are retained.
+#------------------------------------------------------------------------------
+
+vtk_version=VTK-7.1.0
+mesa_version=mesa-13.0.1
+
+export VTK_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$vtk_version
+export MESA_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$mesa_version
+
+#------------------------------------------------------------------------------
+if [ "$FOAM_VERBOSE" -a "$PS1" ]
+then
+    echo "Using vtk  ($vtk_version)  ->  $VTK_ARCH_PATH" 1>&2
+    echo "Using mesa ($mesa_version)  ->  $MESA_ARCH_PATH" 1>&2
+fi
+
+if type _foamAddLib > /dev/null 2>&1    # normal sourcing
+then
+
+    # Set paths if binaries are present
+    if [ -r $VTK_DIR ]
+    then
+        _foamAddLib $VTK_DIR/lib$WM_COMPILER_LIB_ARCH
+    else
+        unset VTK_DIR
+    fi
+
+    if [ -r $MESA_ARCH_PATH ]
+    then
+        _foamAddLib $MESA_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+    else
+        unset MESA_ARCH_PATH
+    fi
+
+    unset vtk_version mesa_version
+fi
+
+#------------------------------------------------------------------------------
diff --git a/etc/cshrc b/etc/cshrc
index 54c74ad3f96..d5f315ee162 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -215,6 +215,7 @@ _foamSource $WM_PROJECT_DIR/etc/config.csh/aliases
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/mpi`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/paraview`
+_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/vtk`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/ensight`
 
 ##_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/ADIOS`
-- 
GitLab