paraview: Upgrade to 5.8.0

PVReaders now support compilation against ParaView version 5.7.0 and
greater. All references to ParaView versions less than 4.0.0 have been
removed.

Based on a patch contributed by CFD Support
This commit is contained in:
Will Bainbridge
2020-04-15 09:42:33 +01:00
parent ff22c54957
commit 9fabb9b002
20 changed files with 236 additions and 100 deletions

View File

@ -4,7 +4,9 @@ cd ${0%/*} || exit 1 # Run from this directory
wclean libso vtkPVblockMesh
wclean libso vtkPVFoam
rm -f $FOAM_LIBBIN/libPVblockMeshReader* 2>/dev/null
rm -rf Make
rm -f $FOAM_LIBBIN/libPVblockMeshReader* 2>/dev/null
rm -rf PVblockMeshReader/Make
rm -f $FOAM_LIBBIN/libPVFoamReader* 2>/dev/null

View File

@ -4,45 +4,51 @@ cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
case "$ParaView_VERSION" in
4* | 5*)
if [ -d "$ParaView_DIR" -a -r "$ParaView_DIR" ]
if [ ! -d "$ParaView_DIR" ]
then
echo " Warning: ParaView not found in $ParaView_DIR. Skipping."
exit 0
fi
if [ -z "$PV_PLUGIN_PATH" ]
then
echo " Error: \$PV_PLUGIN_PATH is unset."
exit 1
fi
# Ensure CMake gets the correct C/C++ compilers
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
wmake $targetType vtkPVblockMesh
wmake $targetType vtkPVFoam
if [ "$targetType" != "objects" ]
then
if $WM_PROJECT_DIR/bin/tools/foamVersionCompare $ParaView_VERSION ge 5.7.0
then
[ -n "$PV_PLUGIN_PATH" ] || {
echo "$0 : PV_PLUGIN_PATH not valid - it is unset"
exit 1
}
# ensure CMake gets the correct C/C++ compilers
[ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
wmake $targetType vtkPVblockMesh
wmake $targetType vtkPVFoam
if [ "$targetType" != "objects" ]
then
(
cd PVblockMeshReader
mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
cd Make/$WM_OPTIONS
cmake ../..
make
)
(
cd PVFoamReader
mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
cd Make/$WM_OPTIONS
cmake ../..
make
)
fi
(
mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
cd Make/$WM_OPTIONS
cmake ../..
make
)
else
echo " ERROR: ParaView not found in $ParaView_DIR"
(
cd PVblockMeshReader
mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
cd Make/$WM_OPTIONS
cmake ../..
make
)
(
cd PVFoamReader
mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
cd Make/$WM_OPTIONS
cmake ../..
make
)
fi
;;
esac
fi
#------------------------------------------------------------------------------

View File

@ -0,0 +1,19 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1)
PROJECT(PVReaders)
FIND_PACKAGE(ParaView REQUIRED)
INCLUDE(GNUInstallDirs)
SET(BUILD_SHARED_LIBS ON)
PARAVIEW_PLUGIN_SCAN(
PLUGIN_FILES
"PVblockMeshReader/paraview.plugin"
"PVFoamReader/paraview.plugin"
PROVIDES_PLUGINS plugins
ENABLE_BY_DEFAULT ON
)
PARAVIEW_PLUGIN_BUILD(PLUGINS ${plugins})

View File

@ -1,8 +1,20 @@
# Set up the environment
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1)
PROJECT(PVFoamReader)
FIND_PACKAGE(ParaView REQUIRED)
INCLUDE(${PARAVIEW_USE_FILE})
IF(${ParaView_VERSION} VERSION_LESS 5.7)
# ParaView-5.7.x and lower will prepend "lib" to the target name
SET(TARGET_NAME PVFoamReader_SM)
ELSE()
SET(TARGET_NAME libPVFoamReader_SM)
ENDIF()
IF(${ParaView_VERSION} VERSION_LESS 5.7)
# ParaView-5.7.x and lower requires the paraview include file
INCLUDE(${PARAVIEW_USE_FILE})
ENDIF()
LINK_DIRECTORIES(
$ENV{FOAM_LIBBIN}
@ -14,6 +26,7 @@ INCLUDE_DIRECTORIES(
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
$ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude
${PROJECT_SOURCE_DIR}/../vtkPVFoam
${PROJECT_SOURCE_DIR}/vtk
)
ADD_DEFINITIONS(
@ -22,45 +35,55 @@ ADD_DEFINITIONS(
-DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE}
)
# Set the output library destination to the plugin directory
SET(
LIBRARY_OUTPUT_PATH $ENV{PV_PLUGIN_PATH}
CACHE INTERNAL
"Single output directory for building all libraries."
)
# Add the plugin. ParaView-4.0.? requires a GUI_RESOURCE_FILES XML file. As of
# version 4.1.? this is no longer needed.
IF(${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} VERSION_LESS 4.1)
# Add the plugin
IF(${ParaView_VERSION} VERSION_LESS 4.1)
# ParaView-4.0.x and lower requires a GUI_RESOURCE_FILES XML file
ADD_PARAVIEW_PLUGIN(
PVFoamReader_SM
${TARGET_NAME}
"1.0"
SERVER_MANAGER_XML PVFoamReader_SM.xml
SERVER_MANAGER_SOURCES vtkPVFoamReader.cxx
SERVER_MANAGER_SOURCES vtk/vtkPVFoamReader.cxx
GUI_RESOURCE_FILES PVFoamReader.xml
)
ELSE()
ELSEIF(${ParaView_VERSION} VERSION_LESS 5.7)
ADD_PARAVIEW_PLUGIN(
PVFoamReader_SM
${TARGET_NAME}
"1.0"
SERVER_MANAGER_XML PVFoamReader_SM.xml
SERVER_MANAGER_SOURCES vtkPVFoamReader.cxx
SERVER_MANAGER_SOURCES vtk/vtkPVFoamReader.cxx
)
ELSE()
# Paraview-5.7.x and higher builds the vtk module separately
PARAVIEW_ADD_PLUGIN(
${TARGET_NAME}
VERSION "1.0"
SERVER_MANAGER_XML PVFoamReader_SM.xml
MODULES PVFoamReader_VTK
MODULE_FILES "vtk/vtk.module"
)
ENDIF()
# Build the client-side plugin. Paraview-5.5.? needs QT-5 libraries listed in
# the link command in order for the headers to be available.
IF(${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} VERSION_LESS 5.5)
# Set the output library destination to the plugin directory
SET_TARGET_PROPERTIES(
${TARGET_NAME}
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "$ENV{PV_PLUGIN_PATH}"
)
# Build the plugin
IF(${ParaView_VERSION} VERSION_LESS 5.5)
TARGET_LINK_LIBRARIES(
PVFoamReader_SM
${TARGET_NAME}
LINK_PUBLIC
vtkPVFoam
finiteVolume
OpenFOAM
)
ELSE()
# Paraview-5.5.x and higher needs QT-5 libraries listed in the link command
# in order for the headers to be available
TARGET_LINK_LIBRARIES(
PVFoamReader_SM
${TARGET_NAME}
LINK_PUBLIC
vtkPVFoam
finiteVolume

View File

@ -0,0 +1,7 @@
NAME
libPVFoamReader_SM
DESCRIPTION
OpenFOAM Foam reader for ParaView
REQUIRES_MODULES
VTK::CommonCore
VTK::FiltersCore

View File

@ -0,0 +1,17 @@
VTK_MODULE_ADD_MODULE(PVFoamReader_VTK CLASSES vtkPVFoamReader)
SET_TARGET_PROPERTIES(
PVFoamReader_VTK
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "$ENV{PV_PLUGIN_PATH}"
)
TARGET_LINK_LIBRARIES(
PVFoamReader_VTK
LINK_PUBLIC
vtkPVFoam
finiteVolume
OpenFOAM
Qt5::Core
Qt5::Gui
)

View File

@ -0,0 +1,6 @@
NAME
PVFoamReader_VTK
DEPENDS
VTK::FiltersCore
PRIVATE_DEPENDS
VTK::CommonCore

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -1,8 +1,20 @@
# Set up the environment
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1)
PROJECT(PVblockMeshReader)
FIND_PACKAGE(ParaView REQUIRED)
INCLUDE(${PARAVIEW_USE_FILE})
IF(${ParaView_VERSION} VERSION_LESS 5.7)
# ParaView-5.7.x and lower will prepend "lib" to the target name
SET(TARGET_NAME PVblockMeshReader_SM)
ELSE()
SET(TARGET_NAME libPVblockMeshReader_SM)
ENDIF()
IF(${ParaView_VERSION} VERSION_LESS 5.7)
# ParaView-5.7.x and lower requires the paraview include file
INCLUDE(${PARAVIEW_USE_FILE})
ENDIF()
LINK_DIRECTORIES(
$ENV{FOAM_LIBBIN}
@ -13,6 +25,7 @@ INCLUDE_DIRECTORIES(
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
${PROJECT_SOURCE_DIR}/../vtkPVblockMesh
${PROJECT_SOURCE_DIR}/vtk
)
ADD_DEFINITIONS(
@ -21,44 +34,54 @@ ADD_DEFINITIONS(
-DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE}
)
# Set the output library destination to the plugin directory
SET(
LIBRARY_OUTPUT_PATH $ENV{PV_PLUGIN_PATH}
CACHE INTERNAL
"Single output directory for building all libraries."
)
# Add the plugin. ParaView-4.0.? requires a GUI_RESOURCE_FILES XML file. As of
# version 4.1.? this is no longer needed.
IF(${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} VERSION_LESS 4.1)
# Add the plugin
IF(${ParaView_VERSION} VERSION_LESS 4.1)
# ParaView-4.0.x and lower requires a GUI_RESOURCE_FILES XML file
ADD_PARAVIEW_PLUGIN(
PVblockMeshReader_SM
${TARGET_NAME}
"1.0"
SERVER_MANAGER_XML PVblockMeshReader_SM.xml
SERVER_MANAGER_SOURCES vtkPVblockMeshReader.cxx
SERVER_MANAGER_SOURCES vtk/vtkPVblockMeshReader.cxx
GUI_RESOURCE_FILES PVblockMeshReader.xml
)
ELSE()
)
ELSEIF(${ParaView_VERSION} VERSION_LESS 5.7)
ADD_PARAVIEW_PLUGIN(
PVblockMeshReader_SM
${TARGET_NAME}
"1.0"
SERVER_MANAGER_XML PVblockMeshReader_SM.xml
SERVER_MANAGER_SOURCES vtkPVblockMeshReader.cxx
SERVER_MANAGER_SOURCES vtk/vtkPVblockMeshReader.cxx
)
ELSE()
# Paraview-5.7.x and higher builds the vtk module separately
PARAVIEW_ADD_PLUGIN(
${TARGET_NAME}
VERSION "1.0"
SERVER_MANAGER_XML PVblockMeshReader_SM.xml
MODULES PVblockMeshReader_VTK
MODULE_FILES "vtk/vtk.module"
)
ENDIF()
# Build the client-side plugin. Paraview-5.5.? needs QT-5 libraries listed in
# the link command in order for the headers to be available.
IF(${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} VERSION_LESS 5.5)
# Set the output library destination to the plugin directory
SET_TARGET_PROPERTIES(
${TARGET_NAME}
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "$ENV{PV_PLUGIN_PATH}"
)
# Build the plugin
IF(${ParaView_VERSION} VERSION_LESS 5.5)
TARGET_LINK_LIBRARIES(
PVblockMeshReader_SM
${TARGET_NAME}
LINK_PUBLIC
vtkPVblockMesh
OpenFOAM
)
ELSE()
# Paraview-5.5.x and higher needs QT-5 libraries listed in the link command
# in order for the headers to be available
TARGET_LINK_LIBRARIES(
PVblockMeshReader_SM
${TARGET_NAME}
LINK_PUBLIC
vtkPVblockMesh
OpenFOAM

View File

@ -0,0 +1,7 @@
NAME
libPVblockMeshReader_SM
DESCRIPTION
OpenFOAM blockMesh reader for ParaView
REQUIRES_MODULES
VTK::CommonCore
VTK::FiltersCore

View File

@ -0,0 +1,16 @@
VTK_MODULE_ADD_MODULE(PVblockMeshReader_VTK CLASSES vtkPVblockMeshReader)
SET_TARGET_PROPERTIES(
PVblockMeshReader_VTK
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "$ENV{PV_PLUGIN_PATH}"
)
TARGET_LINK_LIBRARIES(
PVblockMeshReader_VTK
LINK_PUBLIC
vtkPVblockMesh
OpenFOAM
Qt5::Core
Qt5::Gui
)

View File

@ -0,0 +1,6 @@
NAME
PVblockMeshReader_VTK
DEPENDS
VTK::FiltersCore
PRIVATE_DEPENDS
VTK::CommonCore

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -5,7 +5,7 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I../PVFoamReader \
-I../PVFoamReader/vtk \
-I$(ParaView_INCLUDE_DIR) \
-I$(ParaView_INCLUDE_DIR)/vtkkwiml \
$(shell \

View File

@ -4,7 +4,7 @@ EXE_INC = \
-I$(LIB_SRC)/mesh/blockMesh/lnInclude \
-I$(ParaView_INCLUDE_DIR) \
-I$(ParaView_INCLUDE_DIR)/vtkkwiml \
-I../PVblockMeshReader
-I../PVblockMeshReader/vtk
LIB_LIBS = \
-lmeshTools \

View File

@ -3,7 +3,7 @@
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | Website: https://openfoam.org
# \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
# \\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
@ -61,10 +61,12 @@ error() {
}
pvExec () {
_opt=""
[ "$ParaView_GL" = mesa ] && _opt="--mesa"
paraview $_opt "$@"
if [ "$ParaView_GL" = mesa ]
then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ParaView_LIB_DIR/mesa paraview "$@"
else
paraview "$@"
fi
}
noPVReader () {

View File

@ -60,7 +60,8 @@ end
#setenv ParaView_VERSION 5.0.1
#setenv ParaView_VERSION 5.4.0
#setenv ParaView_VERSION 5.5.0
setenv ParaView_VERSION 5.6.0
#setenv ParaView_VERSION 5.6.0
setenv ParaView_VERSION 5.8.0
setenv ParaView_MAJOR detect
#setenv ParaView_GL system
@ -134,7 +135,7 @@ if ( -d $ParaView_DIR || -d $paraviewSrcDir ) then
# Alias paraview to launch with mesa if necessary
if ("$ParaView_GL" == mesa) then
alias paraview 'paraview --mesa'
alias paraview 'LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ParaView_LIB_DIR/mesa paraview'
endif
else
unsetenv PV_PLUGIN_PATH

View File

@ -65,7 +65,8 @@ done
#export ParaView_VERSION=5.0.1
#export ParaView_VERSION=5.4.0
#export ParaView_VERSION=5.5.0
export ParaView_VERSION=5.6.0
#export ParaView_VERSION=5.6.0
export ParaView_VERSION=5.8.0
export ParaView_MAJOR=detect
#export ParaView_GL=system
@ -153,7 +154,7 @@ then
# Alias paraview to launch with mesa if necessary
if [ "$ParaView_GL" = mesa ]
then
alias paraview="paraview --mesa"
alias paraview='LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ParaView_LIB_DIR/mesa paraview'
fi
else
unset PV_PLUGIN_PATH