From 883752cfb90ba221126c3565a1dcb40d1a526392 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 5 Nov 2019 09:14:37 +0100
Subject: [PATCH] COMP: restructure paraview reader files, add paraview-5.7
 guards

- building plugins with paraview-5.7 is quite different
---
 .../graphics/PVReaders/Allwclean              |  4 +-
 .../graphics/PVReaders/Allwmake               | 23 +++++++--
 .../PVReaders/PVFoamReader/CMakeLists.txt     | 25 ----------
 .../PVblockMeshReader/CMakeLists.txt          | 25 ----------
 .../CMakeLists-OpenFOAM.txt                   |  0
 .../CMakeLists-Project.txt                    | 25 +++++-----
 .../blockMeshReader/CMakeLists-Project57.txt  |  6 +++
 .../PVReaders/blockMeshReader/CMakeLists.txt  | 49 +++++++++++++++++++
 .../library}/Make/files                       |  0
 .../library}/Make/options                     |  4 +-
 .../library}/vtkPVblockMesh.C                 |  0
 .../library}/vtkPVblockMesh.H                 |  0
 .../library}/vtkPVblockMeshConvert.C          |  0
 .../plugin}/PVblockMeshReader_SM.xml          |  0
 .../plugin}/pqFoamBlockMeshControls.cxx       |  0
 .../plugin}/pqFoamBlockMeshControls.h         |  0
 .../plugin/reader}/vtkPVblockMeshReader.cxx   |  0
 .../plugin/reader}/vtkPVblockMeshReader.h     |  0
 .../CMakeLists-OpenFOAM.txt                   |  0
 .../CMakeLists-Project.txt                    | 28 ++++++-----
 .../foamReader/CMakeLists-Project57.txt       |  6 +++
 .../PVReaders/foamReader/CMakeLists.txt       | 49 +++++++++++++++++++
 .../library}/Make/files                       |  0
 .../library}/Make/options                     | 13 +++--
 .../library}/vtkPVFoam.C                      |  0
 .../library}/vtkPVFoam.H                      |  0
 .../library}/vtkPVFoamFieldTemplates.C        |  0
 .../library}/vtkPVFoamFields.C                |  0
 .../library}/vtkPVFoamMesh.C                  |  0
 .../library}/vtkPVFoamMeshLagrangian.C        |  0
 .../library}/vtkPVFoamMeshVolume.C            |  0
 .../library}/vtkPVFoamUpdateInfo.C            |  0
 .../library}/vtkPVFoamUpdateTemplates.C       |  0
 .../plugin}/PVFoamReader_SM.xml               |  0
 .../plugin}/pqFoamReaderControls.cxx          |  0
 .../plugin}/pqFoamReaderControls.h            |  0
 .../plugin/reader}/vtkPVFoamReader.cxx        |  0
 .../plugin/reader}/vtkPVFoamReader.h          |  0
 38 files changed, 171 insertions(+), 86 deletions(-)
 delete mode 100644 applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt
 delete mode 100644 applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVFoamReader => blockMeshReader}/CMakeLists-OpenFOAM.txt (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVblockMeshReader => blockMeshReader}/CMakeLists-Project.txt (65%)
 create mode 100644 applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-Project57.txt
 create mode 100644 applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists.txt
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVblockMesh => blockMeshReader/library}/Make/files (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVblockMesh => blockMeshReader/library}/Make/options (89%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVblockMesh => blockMeshReader/library}/vtkPVblockMesh.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVblockMesh => blockMeshReader/library}/vtkPVblockMesh.H (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVblockMesh => blockMeshReader/library}/vtkPVblockMeshConvert.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVblockMeshReader => blockMeshReader/plugin}/PVblockMeshReader_SM.xml (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVblockMeshReader => blockMeshReader/plugin}/pqFoamBlockMeshControls.cxx (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVblockMeshReader => blockMeshReader/plugin}/pqFoamBlockMeshControls.h (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVblockMeshReader => blockMeshReader/plugin/reader}/vtkPVblockMeshReader.cxx (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVblockMeshReader => blockMeshReader/plugin/reader}/vtkPVblockMeshReader.h (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVblockMeshReader => foamReader}/CMakeLists-OpenFOAM.txt (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVFoamReader => foamReader}/CMakeLists-Project.txt (69%)
 create mode 100644 applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-Project57.txt
 create mode 100644 applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists.txt
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/Make/files (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/Make/options (84%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoam.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoam.H (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoamFieldTemplates.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoamFields.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoamMesh.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoamMeshLagrangian.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoamMeshVolume.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoamUpdateInfo.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{vtkPVFoam => foamReader/library}/vtkPVFoamUpdateTemplates.C (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVFoamReader => foamReader/plugin}/PVFoamReader_SM.xml (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVFoamReader => foamReader/plugin}/pqFoamReaderControls.cxx (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVFoamReader => foamReader/plugin}/pqFoamReaderControls.h (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVFoamReader => foamReader/plugin/reader}/vtkPVFoamReader.cxx (100%)
 rename applications/utilities/postProcessing/graphics/PVReaders/{PVFoamReader => foamReader/plugin/reader}/vtkPVFoamReader.h (100%)

diff --git a/applications/utilities/postProcessing/graphics/PVReaders/Allwclean b/applications/utilities/postProcessing/graphics/PVReaders/Allwclean
index f9777f02d2b..5b27d1316b9 100755
--- a/applications/utilities/postProcessing/graphics/PVReaders/Allwclean
+++ b/applications/utilities/postProcessing/graphics/PVReaders/Allwclean
@@ -4,8 +4,8 @@ cd ${0%/*} || exit 1                            # Run from this directory
 
 # Cleanup libraries
 wclean libso foamPv
-wclean libso vtkPVblockMesh
-wclean libso vtkPVFoam
+wclean libso blockMeshReader/library
+wclean libso foamReader/library
 
 # Cleanup client-server and/or combined plugins
 rm -f $FOAM_LIBBIN/libPVblockMeshReader* 2>/dev/null
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/Allwmake b/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
index babf98f51ab..656c1e6d2fd 100755
--- a/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
+++ b/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
@@ -17,13 +17,28 @@ if have_pvplugin_support
 then
 (
     wmakeLibPv foamPv
-    wmakeLibPv vtkPVblockMesh
-    wmakeLibPv vtkPVFoam
+    wmakeLibPv blockMeshReader/library
+    wmakeLibPv foamReader/library
+
+    unset cmakeType
 
     if [ "$targetType" != objects ]
     then
-        cmakePv $PWD/PVblockMeshReader || warnIncomplete "BlockMesh"
-        cmakePv $PWD/PVFoamReader || warnIncomplete "OpenFOAM"
+        case "$PARAVIEW_API" in
+        (5.[0-6])
+            cmakeType="cmakePv"
+            ;;
+        (*)
+            # cmakeType="cmakePvInstall"
+            warnIncomplete "(unknown/unsupported version: $PARAVIEW_API)"
+            ;;
+        esac
+    fi
+
+    if [ -n "$cmakeType" ]
+    then
+        "$cmakeType" $PWD/blockMeshReader || warnIncomplete "blockMesh"
+        "$cmakeType" $PWD/foamReader || warnIncomplete "OpenFOAM"
     fi
 )
 fi
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt
deleted file mode 100644
index 0d0384dac34..00000000000
--- a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#-----------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 2.8)
-cmake_policy(SET CMP0002 NEW)   # Policy CMP0002 required for for cmake >= 3
-
-# Fail if not building out-of-source
-if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
-    message(FATAL_ERROR
-        "In-source builds disallowed. Use a separate build directory")
-endif()
-
-#-----------------------------------------------------------------------------
-# Simple discovery and sanity checks
-
-find_package(ParaView REQUIRED)
-if (PARAVIEW_USE_FILE)
-    include(${PARAVIEW_USE_FILE})
-endif()
-
-#-----------------------------------------------------------------------------
-
-include(CMakeLists-OpenFOAM.txt)
-include(CMakeLists-Project.txt)
-
-#-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt
deleted file mode 100644
index 0d0384dac34..00000000000
--- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#-----------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 2.8)
-cmake_policy(SET CMP0002 NEW)   # Policy CMP0002 required for for cmake >= 3
-
-# Fail if not building out-of-source
-if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
-    message(FATAL_ERROR
-        "In-source builds disallowed. Use a separate build directory")
-endif()
-
-#-----------------------------------------------------------------------------
-# Simple discovery and sanity checks
-
-find_package(ParaView REQUIRED)
-if (PARAVIEW_USE_FILE)
-    include(${PARAVIEW_USE_FILE})
-endif()
-
-#-----------------------------------------------------------------------------
-
-include(CMakeLists-OpenFOAM.txt)
-include(CMakeLists-Project.txt)
-
-#-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists-OpenFOAM.txt b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-OpenFOAM.txt
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists-OpenFOAM.txt
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-OpenFOAM.txt
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists-Project.txt b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-Project.txt
similarity index 65%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists-Project.txt
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-Project.txt
index e4b63d8ada5..f8b8e457d82 100644
--- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists-Project.txt
+++ b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-Project.txt
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# OpenFOAM blockMeshDict reader plugin for ParaView GUI
+# OpenFOAM blockMeshDict reader plugin for ParaView GUI (pre-5.7)
 
 link_directories(
     $ENV{FOAM_LIBBIN}
@@ -11,10 +11,12 @@ include_directories(
     ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude
     ${LIB_SRC}/meshing/blockMesh/lnInclude
     ${PROJECT_SOURCE_DIR}/../foamPv
-    ${PROJECT_SOURCE_DIR}/../vtkPVblockMesh
+    ${PROJECT_SOURCE_DIR}/library
+    ${PROJECT_SOURCE_DIR}/plugin
+    ${PROJECT_SOURCE_DIR}/plugin/reader
 )
 
-set(OPENFOAM_LIBRARIES
+set(OPENFOAM_LIBNAMES
     OpenFOAM
     blockMesh
 )
@@ -27,7 +29,7 @@ set(
 )
 
 
-qt5_wrap_cpp(MOC_SRCS pqFoamBlockMeshControls.h)
+qt5_wrap_cpp(MOC_SRCS plugin/pqFoamBlockMeshControls.h)
 
 add_paraview_property_group_widget(IFACES0 IFACES0_SRCS
     TYPE "openfoam_blockMesh_general_controls"
@@ -36,23 +38,24 @@ add_paraview_property_group_widget(IFACES0 IFACES0_SRCS
 
 add_paraview_plugin(
     PVblockMeshReader_SM "1.0"
-    SERVER_MANAGER_XML PVblockMeshReader_SM.xml
-    SERVER_MANAGER_SOURCES  vtkPVblockMeshReader.cxx
+    SERVER_MANAGER_XML
+        plugin/PVblockMeshReader_SM.xml
+    SERVER_MANAGER_SOURCES
+        plugin/reader/vtkPVblockMeshReader.cxx
     GUI_INTERFACES
         ${IFACES0}
     SOURCES
         ${IFACES0_SRCS}
         ${MOC_SRCS}
-        pqFoamBlockMeshControls.cxx
+        plugin/pqFoamBlockMeshControls.cxx
 )
 
-
 target_link_libraries(
     PVblockMeshReader_SM
     LINK_PUBLIC
-    vtkPVblockMesh-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
-    foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
-    ${OPENFOAM_LIBRARIES}
+    foamPv${foamPvLibQualifier}
+    vtkPVblockMesh${foamPvLibQualifier}
+    ${OPENFOAM_LIBNAMES}
 )
 
 #-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-Project57.txt b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-Project57.txt
new file mode 100644
index 00000000000..718a5318de5
--- /dev/null
+++ b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists-Project57.txt
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------
+# OpenFOAM blockMeshDict reader plugin for ParaView GUI (5.7+)
+
+message(FATAL_ERROR "paraview-${pv_api} not yet supported")
+
+#-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists.txt
new file mode 100644
index 00000000000..9062310502c
--- /dev/null
+++ b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/CMakeLists.txt
@@ -0,0 +1,49 @@
+#-----------------------------------------------------------------------------
+
+cmake_minimum_required(VERSION 2.8)
+cmake_policy(SET CMP0002 NEW)   # Policy CMP0002 required for for cmake >= 3
+
+# Fail if not building out-of-source
+if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
+    message(FATAL_ERROR
+        "In-source builds disallowed. Use a separate build directory")
+endif()
+
+#-----------------------------------------------------------------------------
+# Simple discovery and sanity checks
+
+find_package(ParaView REQUIRED)
+
+# Qualify OpenFOAM/ParaView libraries with -pvMAJ.MIN
+# The pv_api can also be used for paraview-MAJ.MIN
+if (DEFINED ENV{PARAVIEW_API})
+    set(pv_api "$ENV{PARAVIEW_API}")
+else()
+    if (${ParaView_VERSION} GREATER_EQUAL 5.7)
+        string(REGEX MATCH [0-9]+[.][0-9]+ pv_api ${ParaView_VERSION})
+        message("The PARAVIEW_API env was unset, "
+            "extracted value from version="
+            "${ParaView_VERSION} is ${pv_api}")
+    else()
+        set(pv_api "${PARAVIEW_VERSION_MAJOR}.${ParaView_VERSION_MINOR}")
+        message("The PARAVIEW_API env was unset, "
+            "assembled from maj/min="
+            "${ParaView_VERSION_MAJOR}/${ParaView_VERSION_MINOR} is ${pv_api}")
+    endif()
+endif()
+
+set(foamPvLibQualifier "-pv${pv_api}")
+message("OpenFOAM libraries qualified with ${foamPvLibQualifier}")
+
+#-----------------------------------------------------------------------------
+
+include(CMakeLists-OpenFOAM.txt)
+
+if (${ParaView_VERSION} GREATER_EQUAL 5.7)
+  include(CMakeLists-Project57.txt)
+else()
+  include(${PARAVIEW_USE_FILE})
+  include(CMakeLists-Project.txt)
+endif()
+
+#-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/Make/files b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/Make/files
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/Make/files
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/Make/files
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/Make/options b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/Make/options
similarity index 89%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/Make/options
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/Make/options
index 40f9fce989b..f6b311335ea 100644
--- a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/Make/options
+++ b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/Make/options
@@ -6,8 +6,8 @@ EXE_INC = \
     -I$(LIB_SRC)/mesh/blockMesh/lnInclude \
     -I$(PARAVIEW_INC_DIR) \
     -I$(PARAVIEW_INC_DIR)/vtkkwiml \
-    -I../foamPv \
-    -I../PVblockMeshReader
+    -I../../foamPv \
+    -I../plugin/reader
 
 LIB_LIBS = \
     -lmeshTools \
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/vtkPVblockMesh.C b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/vtkPVblockMesh.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/vtkPVblockMesh.C
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/vtkPVblockMesh.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/vtkPVblockMesh.H b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/vtkPVblockMesh.H
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/vtkPVblockMesh.H
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/vtkPVblockMesh.H
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/vtkPVblockMeshConvert.C b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/vtkPVblockMeshConvert.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVblockMesh/vtkPVblockMeshConvert.C
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/library/vtkPVblockMeshConvert.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader_SM.xml b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/PVblockMeshReader_SM.xml
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader_SM.xml
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/PVblockMeshReader_SM.xml
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/pqFoamBlockMeshControls.cxx b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/pqFoamBlockMeshControls.cxx
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/pqFoamBlockMeshControls.cxx
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/pqFoamBlockMeshControls.cxx
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/pqFoamBlockMeshControls.h b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/pqFoamBlockMeshControls.h
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/pqFoamBlockMeshControls.h
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/pqFoamBlockMeshControls.h
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMeshReader.cxx b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/reader/vtkPVblockMeshReader.cxx
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMeshReader.cxx
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/reader/vtkPVblockMeshReader.cxx
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMeshReader.h b/applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/reader/vtkPVblockMeshReader.h
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMeshReader.h
rename to applications/utilities/postProcessing/graphics/PVReaders/blockMeshReader/plugin/reader/vtkPVblockMeshReader.h
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists-OpenFOAM.txt b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-OpenFOAM.txt
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists-OpenFOAM.txt
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-OpenFOAM.txt
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists-Project.txt b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-Project.txt
similarity index 69%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists-Project.txt
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-Project.txt
index 95dee414db2..c3bf5d129f2 100644
--- a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists-Project.txt
+++ b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-Project.txt
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# OpenFOAM reader plugin for ParaView GUI
+# OpenFOAM reader plugin for ParaView GUI (pre-5.7)
 
 link_directories(
     $ENV{FOAM_LIBBIN}
@@ -14,15 +14,17 @@ include_directories(
     ${LIB_SRC}/finiteArea/lnInclude
     ${LIB_SRC}/finiteVolume/lnInclude
     ${PROJECT_SOURCE_DIR}/../foamPv
-    ${PROJECT_SOURCE_DIR}/../vtkPVFoam
+    ${PROJECT_SOURCE_DIR}/library
+    ${PROJECT_SOURCE_DIR}/plugin
+    ${PROJECT_SOURCE_DIR}/plugin/reader
 )
 
-set(OPENFOAM_LIBRARIES
+set(OPENFOAM_LIBNAMES
     OpenFOAM
-    finiteVolume
-    finiteArea
     fileFormats
     conversion
+    finiteArea
+    finiteVolume
 )
 
 # Set output library destination to plugin directory
@@ -33,7 +35,7 @@ set(
 )
 
 
-qt5_wrap_cpp(MOC_SRCS pqFoamReaderControls.h)
+qt5_wrap_cpp(MOC_SRCS plugin/pqFoamReaderControls.h)
 
 add_paraview_property_group_widget(IFACES0 IFACES0_SRCS
     TYPE "openfoam_reader_general_controls"
@@ -42,23 +44,25 @@ add_paraview_property_group_widget(IFACES0 IFACES0_SRCS
 
 add_paraview_plugin(
     PVFoamReader_SM "1.0"
-    SERVER_MANAGER_XML PVFoamReader_SM.xml
-    SERVER_MANAGER_SOURCES vtkPVFoamReader.cxx
+    SERVER_MANAGER_XML
+        plugin/PVFoamReader_SM.xml
+    SERVER_MANAGER_SOURCES
+        plugin/reader/vtkPVFoamReader.cxx
     GUI_INTERFACES
         ${IFACES0}
     SOURCES
         ${IFACES0_SRCS}
         ${MOC_SRCS}
-        pqFoamReaderControls.cxx
+        plugin/pqFoamReaderControls.cxx
 )
 
 
 target_link_libraries(
     PVFoamReader_SM
     LINK_PUBLIC
-    vtkPVFoam-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
-    foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
-    ${OPENFOAM_LIBRARIES}
+    foamPv${foamPvLibQualifier}
+    vtkPVFoam${foamPvLibQualifier}
+    ${OPENFOAM_LIBNAMES}
 )
 
 #-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-Project57.txt b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-Project57.txt
new file mode 100644
index 00000000000..c5d5236a59a
--- /dev/null
+++ b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists-Project57.txt
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------
+# OpenFOAM reader plugin for ParaView GUI (5.7+)
+
+message(FATAL_ERROR "paraview-${pv_api} not yet supported")
+
+#-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists.txt
new file mode 100644
index 00000000000..9062310502c
--- /dev/null
+++ b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/CMakeLists.txt
@@ -0,0 +1,49 @@
+#-----------------------------------------------------------------------------
+
+cmake_minimum_required(VERSION 2.8)
+cmake_policy(SET CMP0002 NEW)   # Policy CMP0002 required for for cmake >= 3
+
+# Fail if not building out-of-source
+if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
+    message(FATAL_ERROR
+        "In-source builds disallowed. Use a separate build directory")
+endif()
+
+#-----------------------------------------------------------------------------
+# Simple discovery and sanity checks
+
+find_package(ParaView REQUIRED)
+
+# Qualify OpenFOAM/ParaView libraries with -pvMAJ.MIN
+# The pv_api can also be used for paraview-MAJ.MIN
+if (DEFINED ENV{PARAVIEW_API})
+    set(pv_api "$ENV{PARAVIEW_API}")
+else()
+    if (${ParaView_VERSION} GREATER_EQUAL 5.7)
+        string(REGEX MATCH [0-9]+[.][0-9]+ pv_api ${ParaView_VERSION})
+        message("The PARAVIEW_API env was unset, "
+            "extracted value from version="
+            "${ParaView_VERSION} is ${pv_api}")
+    else()
+        set(pv_api "${PARAVIEW_VERSION_MAJOR}.${ParaView_VERSION_MINOR}")
+        message("The PARAVIEW_API env was unset, "
+            "assembled from maj/min="
+            "${ParaView_VERSION_MAJOR}/${ParaView_VERSION_MINOR} is ${pv_api}")
+    endif()
+endif()
+
+set(foamPvLibQualifier "-pv${pv_api}")
+message("OpenFOAM libraries qualified with ${foamPvLibQualifier}")
+
+#-----------------------------------------------------------------------------
+
+include(CMakeLists-OpenFOAM.txt)
+
+if (${ParaView_VERSION} GREATER_EQUAL 5.7)
+  include(CMakeLists-Project57.txt)
+else()
+  include(${PARAVIEW_USE_FILE})
+  include(CMakeLists-Project.txt)
+endif()
+
+#-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/Make/files b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/Make/files
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/Make/files
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/Make/files
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/Make/options b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/Make/options
similarity index 84%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/Make/options
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/Make/options
index db95069c804..7315fd9d1f2 100644
--- a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/Make/options
+++ b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/Make/options
@@ -1,21 +1,24 @@
 EXE_INC = \
     ${c++LESSWARN} \
+    -I$(LIB_SRC)/fileFormats/lnInclude \
+    -I$(LIB_SRC)/conversion/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/finiteArea/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
-    -I$(LIB_SRC)/fileFormats/lnInclude \
-    -I$(LIB_SRC)/conversion/lnInclude \
     -I$(PARAVIEW_INC_DIR) \
     -I$(PARAVIEW_INC_DIR)/vtkkwiml \
-    -I../foamPv \
-    -I../PVFoamReader
+    -I../../foamPv \
+    -I../plugin/reader
 
 LIB_LIBS = \
+    -lfileFormats \
+    -lconversion \
+    -lmeshTools \
+    -lfiniteVolume \
     -lfiniteArea \
     -ldynamicMesh \
-    -lconversion \
     -lgenericPatchFields \
     -llagrangian \
     -L$(FOAM_LIBBIN) -lfoamPv-pv${PARAVIEW_API} \
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoam.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoam.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoam.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoam.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoam.H b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoam.H
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoam.H
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoam.H
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamFieldTemplates.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamFieldTemplates.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamFieldTemplates.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamFieldTemplates.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamFields.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamFields.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamFields.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamFields.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamMesh.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamMesh.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamMesh.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamMesh.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamMeshLagrangian.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamMeshLagrangian.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamMeshLagrangian.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamMeshLagrangian.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamMeshVolume.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamMeshVolume.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamMeshVolume.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamMeshVolume.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamUpdateInfo.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamUpdateInfo.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamUpdateInfo.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamUpdateInfo.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamUpdateTemplates.C b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamUpdateTemplates.C
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/vtkPVFoam/vtkPVFoamUpdateTemplates.C
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/library/vtkPVFoamUpdateTemplates.C
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/PVFoamReader_SM.xml b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/PVFoamReader_SM.xml
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/PVFoamReader_SM.xml
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/PVFoamReader_SM.xml
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/pqFoamReaderControls.cxx b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/pqFoamReaderControls.cxx
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/pqFoamReaderControls.cxx
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/pqFoamReaderControls.cxx
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/pqFoamReaderControls.h b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/pqFoamReaderControls.h
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/pqFoamReaderControls.h
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/pqFoamReaderControls.h
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoamReader.cxx b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/reader/vtkPVFoamReader.cxx
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoamReader.cxx
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/reader/vtkPVFoamReader.cxx
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoamReader.h b/applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/reader/vtkPVFoamReader.h
similarity index 100%
rename from applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoamReader.h
rename to applications/utilities/postProcessing/graphics/PVReaders/foamReader/plugin/reader/vtkPVFoamReader.h
-- 
GitLab