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 vtkPVblockMesh
wclean libso vtkPVFoam 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 -rf PVblockMeshReader/Make
rm -f $FOAM_LIBBIN/libPVFoamReader* 2>/dev/null 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 # Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
case "$ParaView_VERSION" in if [ ! -d "$ParaView_DIR" ]
4* | 5*) then
if [ -d "$ParaView_DIR" -a -r "$ParaView_DIR" ] 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 then
[ -n "$PV_PLUGIN_PATH" ] || { (
echo "$0 : PV_PLUGIN_PATH not valid - it is unset" mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
exit 1 cd Make/$WM_OPTIONS
} cmake ../..
make
# 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
else 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 fi
;; fi
esac
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

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 3.5.1)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(PVFoamReader)
FIND_PACKAGE(ParaView REQUIRED) 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( LINK_DIRECTORIES(
$ENV{FOAM_LIBBIN} $ENV{FOAM_LIBBIN}
@ -14,6 +26,7 @@ INCLUDE_DIRECTORIES(
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
$ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude $ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude
${PROJECT_SOURCE_DIR}/../vtkPVFoam ${PROJECT_SOURCE_DIR}/../vtkPVFoam
${PROJECT_SOURCE_DIR}/vtk
) )
ADD_DEFINITIONS( ADD_DEFINITIONS(
@ -22,45 +35,55 @@ ADD_DEFINITIONS(
-DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE}
) )
# Set the output library destination to the plugin directory # Add the plugin
SET( IF(${ParaView_VERSION} VERSION_LESS 4.1)
LIBRARY_OUTPUT_PATH $ENV{PV_PLUGIN_PATH} # ParaView-4.0.x and lower requires a GUI_RESOURCE_FILES XML file
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_PARAVIEW_PLUGIN( ADD_PARAVIEW_PLUGIN(
PVFoamReader_SM ${TARGET_NAME}
"1.0" "1.0"
SERVER_MANAGER_XML PVFoamReader_SM.xml SERVER_MANAGER_XML PVFoamReader_SM.xml
SERVER_MANAGER_SOURCES vtkPVFoamReader.cxx SERVER_MANAGER_SOURCES vtk/vtkPVFoamReader.cxx
GUI_RESOURCE_FILES PVFoamReader.xml GUI_RESOURCE_FILES PVFoamReader.xml
) )
ELSE() ELSEIF(${ParaView_VERSION} VERSION_LESS 5.7)
ADD_PARAVIEW_PLUGIN( ADD_PARAVIEW_PLUGIN(
PVFoamReader_SM ${TARGET_NAME}
"1.0" "1.0"
SERVER_MANAGER_XML PVFoamReader_SM.xml 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() ENDIF()
# Build the client-side plugin. Paraview-5.5.? needs QT-5 libraries listed in # Set the output library destination to the plugin directory
# the link command in order for the headers to be available. SET_TARGET_PROPERTIES(
IF(${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} VERSION_LESS 5.5) ${TARGET_NAME}
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "$ENV{PV_PLUGIN_PATH}"
)
# Build the plugin
IF(${ParaView_VERSION} VERSION_LESS 5.5)
TARGET_LINK_LIBRARIES( TARGET_LINK_LIBRARIES(
PVFoamReader_SM ${TARGET_NAME}
LINK_PUBLIC LINK_PUBLIC
vtkPVFoam vtkPVFoam
finiteVolume finiteVolume
OpenFOAM OpenFOAM
) )
ELSE() 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( TARGET_LINK_LIBRARIES(
PVFoamReader_SM ${TARGET_NAME}
LINK_PUBLIC LINK_PUBLIC
vtkPVFoam vtkPVFoam
finiteVolume 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 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org \\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License

View File

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

View File

@ -1,8 +1,20 @@
# Set up the environment CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(PVblockMeshReader)
FIND_PACKAGE(ParaView REQUIRED) 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( LINK_DIRECTORIES(
$ENV{FOAM_LIBBIN} $ENV{FOAM_LIBBIN}
@ -13,6 +25,7 @@ INCLUDE_DIRECTORIES(
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
${PROJECT_SOURCE_DIR}/../vtkPVblockMesh ${PROJECT_SOURCE_DIR}/../vtkPVblockMesh
${PROJECT_SOURCE_DIR}/vtk
) )
ADD_DEFINITIONS( ADD_DEFINITIONS(
@ -21,44 +34,54 @@ ADD_DEFINITIONS(
-DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE}
) )
# Set the output library destination to the plugin directory # Add the plugin
SET( IF(${ParaView_VERSION} VERSION_LESS 4.1)
LIBRARY_OUTPUT_PATH $ENV{PV_PLUGIN_PATH} # ParaView-4.0.x and lower requires a GUI_RESOURCE_FILES XML file
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_PARAVIEW_PLUGIN( ADD_PARAVIEW_PLUGIN(
PVblockMeshReader_SM ${TARGET_NAME}
"1.0" "1.0"
SERVER_MANAGER_XML PVblockMeshReader_SM.xml SERVER_MANAGER_XML PVblockMeshReader_SM.xml
SERVER_MANAGER_SOURCES vtkPVblockMeshReader.cxx SERVER_MANAGER_SOURCES vtk/vtkPVblockMeshReader.cxx
GUI_RESOURCE_FILES PVblockMeshReader.xml GUI_RESOURCE_FILES PVblockMeshReader.xml
) )
ELSE() ELSEIF(${ParaView_VERSION} VERSION_LESS 5.7)
ADD_PARAVIEW_PLUGIN( ADD_PARAVIEW_PLUGIN(
PVblockMeshReader_SM ${TARGET_NAME}
"1.0" "1.0"
SERVER_MANAGER_XML PVblockMeshReader_SM.xml 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() ENDIF()
# Build the client-side plugin. Paraview-5.5.? needs QT-5 libraries listed in # Set the output library destination to the plugin directory
# the link command in order for the headers to be available. SET_TARGET_PROPERTIES(
IF(${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} VERSION_LESS 5.5) ${TARGET_NAME}
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "$ENV{PV_PLUGIN_PATH}"
)
# Build the plugin
IF(${ParaView_VERSION} VERSION_LESS 5.5)
TARGET_LINK_LIBRARIES( TARGET_LINK_LIBRARIES(
PVblockMeshReader_SM ${TARGET_NAME}
LINK_PUBLIC LINK_PUBLIC
vtkPVblockMesh vtkPVblockMesh
OpenFOAM OpenFOAM
) )
ELSE() 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( TARGET_LINK_LIBRARIES(
PVblockMeshReader_SM ${TARGET_NAME}
LINK_PUBLIC LINK_PUBLIC
vtkPVblockMesh vtkPVblockMesh
OpenFOAM 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 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org \\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License

View File

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

View File

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

View File

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

View File

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

View File

@ -60,7 +60,8 @@ end
#setenv ParaView_VERSION 5.0.1 #setenv ParaView_VERSION 5.0.1
#setenv ParaView_VERSION 5.4.0 #setenv ParaView_VERSION 5.4.0
#setenv ParaView_VERSION 5.5.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_MAJOR detect
#setenv ParaView_GL system #setenv ParaView_GL system
@ -134,7 +135,7 @@ if ( -d $ParaView_DIR || -d $paraviewSrcDir ) then
# Alias paraview to launch with mesa if necessary # Alias paraview to launch with mesa if necessary
if ("$ParaView_GL" == mesa) then if ("$ParaView_GL" == mesa) then
alias paraview 'paraview --mesa' alias paraview 'LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ParaView_LIB_DIR/mesa paraview'
endif endif
else else
unsetenv PV_PLUGIN_PATH unsetenv PV_PLUGIN_PATH

View File

@ -65,7 +65,8 @@ done
#export ParaView_VERSION=5.0.1 #export ParaView_VERSION=5.0.1
#export ParaView_VERSION=5.4.0 #export ParaView_VERSION=5.4.0
#export ParaView_VERSION=5.5.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_MAJOR=detect
#export ParaView_GL=system #export ParaView_GL=system
@ -153,7 +154,7 @@ then
# Alias paraview to launch with mesa if necessary # Alias paraview to launch with mesa if necessary
if [ "$ParaView_GL" = mesa ] if [ "$ParaView_GL" = mesa ]
then then
alias paraview="paraview --mesa" alias paraview='LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ParaView_LIB_DIR/mesa paraview'
fi fi
else else
unset PV_PLUGIN_PATH unset PV_PLUGIN_PATH