Updates will be applied on October 27th between 12pm - 12:45pm EDT (UTC-0400). Gitlab may be slow during the maintenance window.

Commit 056de649 authored by Utkarsh Ayachit's avatar Utkarsh Ayachit
Browse files

Add CATALYST and CATALYST_RENDERING editions.

We now have 5 editions: CORE, RENDERING, CATALYST, CATALYST_RENDERING,
and CANONICAL.

To support this we have reworked module groups and conditions. We now
have only two groups PARAVIEW_CORE and PARAVIEW_CANONICAL. Two flags:
PARAVIEW_ENABLE_RENDERING and PARAVIEW_ENABLE_NONESSENTIAL can be used
by modules to exclude themselves from these groups by default. Now we
can support the 5 editions as follows:

CORE:
   enable PARAVIEW_CORE group

RENDERING:
   enable PARAVIEW_CORE group
   PARAVIEW_ENABLE_RENDERING=ON

CATALYST:
   enable PARAVIEW_CANONICAL group

CATALYST_RENDERING
   enable PARAVIEW_CANONICAL group
   PARAVIEW_ENABLE_RENDERING=ON

CANONICAL:
   enable PARAVIEW_CANONICAL group
   PARAVIEW_ENABLE_RENDERING=ON
   PARAVIEW_ENABLE_NONESSENTIAL=ON

When PARAVIEW_ENABLE_NONESSENTIAL is FALSE, we ensure that hdf5, netcdf,
cgns modules are rejected thus ensuring we don't build these painful
dependencies for Catalyst editions.
parent cb83bdbf
......@@ -43,31 +43,32 @@ set(PARAVIEW_BUILD_EDITION "CANONICAL"
CACHE STRING "Enable ParaView components essential for requested capabilities.")
set_property(CACHE PARAVIEW_BUILD_EDITION
PROPERTY
STRINGS "CORE;RENDERING;CANONICAL")
STRINGS "CORE;RENDERING;CATALYST;CATALYST_RENDERING;CANONICAL")
set(PARAVIEW_BUILD_CANONICAL OFF)
set(PARAVIEW_ENABLE_RENDERING OFF)
set(PARAVIEW_ENABLE_NONESSENTIAL OFF)
if (PARAVIEW_BUILD_EDITION STREQUAL "CORE")
set(VTK_GROUP_ENABLE_PARAVIEW_CORE "YES" CACHE INTERNAL "")
set(VTK_GROUP_ENABLE_PARAVIEW_RENDERING "NO" CACHE INTERNAL "")
set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "NO" CACHE INTERNAL "")
set(PARAVIEW_BUILD_CORE ON)
set(PARAVIEW_BUILD_RENDERING OFF)
set(PARAVIEW_BUILD_CANONICAL OFF)
# all are OFF.
elseif (PARAVIEW_BUILD_EDITION STREQUAL "RENDERING")
set(VTK_GROUP_ENABLE_PARAVIEW_CORE "YES" CACHE INTERNAL "")
set(VTK_GROUP_ENABLE_PARAVIEW_RENDERING "YES" CACHE INTERNAL "")
set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "NO" CACHE INTERNAL "")
set(PARAVIEW_BUILD_CORE ON)
set(PARAVIEW_BUILD_RENDERING ON)
set(PARAVIEW_BUILD_CANONICAL OFF)
set(PARAVIEW_ENABLE_RENDERING ON)
elseif (PARAVIEW_BUILD_EDITION STREQUAL "CATALYST")
set(PARAVIEW_BUILD_CANONICAL ON)
elseif (PARAVIEW_BUILD_EDITION STREQUAL "CATALYST_RENDERING")
set(PARAVIEW_ENABLE_RENDERING ON)
set(PARAVIEW_BUILD_CANONICAL ON)
elseif (PARAVIEW_BUILD_EDITION STREQUAL "CANONICAL")
set(VTK_GROUP_ENABLE_PARAVIEW_CORE "YES" CACHE INTERNAL "")
set(VTK_GROUP_ENABLE_PARAVIEW_RENDERING "YES" CACHE INTERNAL "")
set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "YES" CACHE INTERNAL "")
set(PARAVIEW_BUILD_CORE ON)
set(PARAVIEW_BUILD_RENDERING ON)
set(PARAVIEW_ENABLE_RENDERING ON)
set(PARAVIEW_BUILD_CANONICAL ON)
set(PARAVIEW_ENABLE_NONESSENTIAL ON)
endif()
set(VTK_GROUP_ENABLE_PARAVIEW_CORE "YES" CACHE INTERNAL "")
if (PARAVIEW_BUILD_CANONICAL)
set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "YES" CACHE INTERNAL "")
else()
set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "NO" CACHE INTERNAL "")
endif()
#========================================================================
# CAPABILITY OPTIONS:
......@@ -85,19 +86,19 @@ endif ()
option(PARAVIEW_USE_MPI "Enable MPI support for parallel computing" OFF)
option(PARAVIEW_USE_CUDA "Support CUDA compilation" OFF)
option(PARAVIEW_USE_VTKM "Enable VTK-m accelerated algorithms" ON)
option(PARAVIEW_USE_VTKM "Enable VTK-m accelerated algorithms" "${PARAVIEW_ENABLE_NONESSENTIAL}")
vtk_deprecated_setting(python_default PARAVIEW_USE_PYTHON PARAVIEW_ENABLE_PYTHON OFF)
option(PARAVIEW_USE_PYTHON "Enable/Disable Python scripting support" "${python_default}")
# Currently, we're making `PARAVIEW_USE_QT` available only when doing CANONICAL
# builds. This is technically not necessary so we can support that use-case if
# needed in future but will require some work to make sure the Qt components
# builds with RENDERING. This is technically not necessary so we can support that
# use-case if needed in future but will require some work to make sure the Qt components
# work correctly with missing proxies.
vtk_deprecated_setting(qt_gui_default PARAVIEW_USE_QT PARAVIEW_BUILD_QT_GUI "ON")
cmake_dependent_option(PARAVIEW_USE_QT
"Enable Qt-support needed for graphical UI" "${qt_gui_default}"
"PARAVIEW_BUILD_CANONICAL" OFF)
"PARAVIEW_BUILD_CANONICAL;PARAVIEW_ENABLE_RENDERING;PARAVIEW_ENABLE_NONESSENTIAL" OFF)
# Add an option to enable using Qt Webkit for widgets, as needed.
# Default is OFF. We don't want to depend on WebKit unless absolutely needed.
......@@ -120,7 +121,7 @@ mark_as_advanced(PARAVIEW_USE_QTHELP)
#========================================================================
vtk_deprecated_setting(raytracing_default PARAVIEW_ENABLE_RAYTRACING PARAVIEW_USE_RAYTRACING "OFF")
option(PARAVIEW_ENABLE_RAYTRACING "Build ParaView with OSPray and/or OptiX ray-tracing support")
option(PARAVIEW_ENABLE_RAYTRACING "Build ParaView with OSPray and/or OptiX ray-tracing support" "${raytracing_default}")
set(paraview_web_default ON)
if (PARAVIEW_USE_PYTHON AND WIN32)
......@@ -153,7 +154,11 @@ option(PARAVIEW_ENABLE_MOMENTINVARIANTS "Enable MomentInvariants filters" OFF)
option(PARAVIEW_ENABLE_VISITBRIDGE "Enable VisIt readers." OFF)
# default to ON for CANONICAL builds, else OFF.
option(PARAVIEW_ENABLE_XDMF2 "Enable Xdmf2 support." "${PARAVIEW_BUILD_CANONICAL}")
set(xdmf2_default OFF)
if (PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL)
set(xdmf2_default ON)
endif()
option(PARAVIEW_ENABLE_XDMF2 "Enable Xdmf2 support." "${xdmf2_default}")
option(PARAVIEW_ENABLE_XDMF3 "Enable Xdmf3 support." OFF)
......@@ -169,15 +174,6 @@ cmake_dependent_option(PARAVIEW_ENABLE_COSMOTOOLS
"Build ParaView with CosmoTools VTK Extensions" OFF
"UNIX;PARAVIEW_USE_MPI" OFF)
# PARAVIEW_ENABLE_EXPORTERS option is shown only when PARAVIEW_BUILD_EDITION is set to RENDERING.
# If PARAVIEW_BUILD_EDITION is set to CORE, the ParaView::RemotingExport module's CONDITION
# ensures that the module is not built nor is the option available.
# If PARAVIEW_BUILD_EDITION is set to CANONICAL, the option is not shown but is assumed ON and
# ParaView::RemotingExport module's CONDITION succeeds, thus enabling the module.
cmake_dependent_option(PARAVIEW_ENABLE_EXPORTERS
"Enable view exporters." OFF
"NOT PARAVIEW_BUILD_CANONICAL;PARAVIEW_BUILD_RENDERING" ON)
#========================================================================
# MISCELLANEOUS OPTIONS:
# Options that are hard to classify. Keep this list minimal.
......@@ -276,7 +272,7 @@ paraview_require_module(
EXCLUSIVE)
paraview_require_module(
CONDITION PARAVIEW_USE_PYTHON AND PARAVIEW_BUILD_RENDERING
CONDITION PARAVIEW_USE_PYTHON AND PARAVIEW_ENABLE_RENDERING AND PARAVIEW_BUILD_CANONICAL
MODULES VTK::RenderingMatplotlib)
paraview_require_module(
......@@ -285,7 +281,7 @@ paraview_require_module(
EXCLUSIVE)
paraview_require_module(
CONDITION PARAVIEW_ENABLE_RAYTRACING AND PARAVIEW_BUILD_RENDERING
CONDITION PARAVIEW_ENABLE_RAYTRACING AND PARAVIEW_ENABLE_RENDERING
MODULES VTK::RenderingRayTracing
EXCLUSIVE)
......@@ -388,30 +384,34 @@ paraview_require_module(
VTK::ImagingGeneral
VTK::ImagingHybrid
VTK::ImagingSources
VTK::IOAMR
VTK::IOAsynchronous # needed for cinema
VTK::IOCityGML
VTK::IOGeometry
VTK::IOH5part
VTK::IOImage
VTK::IOInfovis
VTK::IOLegacy
VTK::IONetCDF
VTK::IOOggTheora
VTK::IOParallel
VTK::IOParallelExodus
VTK::IOParallelLSDyna
VTK::IOParallelXML
VTK::IOPIO
VTK::IOSegY
VTK::IOTecplotTable
VTK::IOTRUCHAS
VTK::IOVeraOut
VTK::IOPLY
VTK::IOVPIC
VTK::IOXML)
paraview_require_module(
CONDITION PARAVIEW_BUILD_RENDERING
CONDITION PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL
MODULES VTK::IOAMR
VTK::IOCityGML
VTK::IOH5part
VTK::IONetCDF
VTK::IOOggTheora
VTK::IOParallelExodus
VTK::IOParallelLSDyna
VTK::IOPIO
VTK::IOSegY
VTK::IOTRUCHAS
VTK::IOVeraOut
VTK::IOTecplotTable)
paraview_require_module(
CONDITION PARAVIEW_ENABLE_RENDERING AND PARAVIEW_BUILD_CANONICAL
MODULES VTK::FiltersTexture
VTK::RenderingFreeType)
......@@ -427,6 +427,31 @@ paraview_require_module(
VTK::IOMPIImage
VTK::IOParallelNetCDF)
paraview_require_module(
CONDITION PARAVIEW_USE_MPI AND PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL
MODULES VTK::IOParallelNetCDF)
if (NOT PARAVIEW_ENABLE_NONESSENTIAL)
# This ensures that we don't ever enable certain problematic
# modules when PARAVIEW_ENABLE_NONESSENTIAL is OFF.
list(APPEND paraview_rejected_modules
ParaView::cgns
VTK::hdf5
VTK::netcdf
VTK::ogg
VTK::theora
VTK::xdmf2
VTK::xdmf3)
endif()
if (NOT PARAVIEW_ENABLE_RENDERING)
# This ensures that we don't ever enable OpenGL
# modules when PARAVIEW_ENABLE_RENDERING is OFF.
list(APPEND paraview_rejected_modules
VTK::glew
VTK::opengl)
endif()
if (paraview_requested_modules)
list(REMOVE_DUPLICATES paraview_requested_modules)
endif ()
......
......@@ -239,7 +239,11 @@ set_property(GLOBAL
# Note that the way that this flag gets used, it only has an effect on the
# initial configuration.
option(PARAVIEW_PLUGINS_DEFAULT "Default state for ParaView plugins" ${PARAVIEW_BUILD_CANONICAL})
set(_paraview_plugins_default OFF)
if (PARAVIEW_BUILD_EDITION STREQUAL "CANONICAL")
set(_paraview_plugins_default ON)
endif()
option(PARAVIEW_PLUGINS_DEFAULT "Default state for ParaView plugins" "${_paraview_plugins_default}")
mark_as_advanced(PARAVIEW_PLUGINS_DEFAULT)
set(paraview_default_plugins
AcceleratedAlgorithms
......
......@@ -456,6 +456,10 @@ this using the `PARAVIEW_BUILD_EDITION` setting. Supported values for this setti
This does not include rendering.
* `RENDERING`: Build modules necessary for supporting rendering including views
and representations. This includes everything in `CORE`.
* `CATALYST`: Build all modules necessary for in situ use cases without
rendering and optional components like NetCDF- and HDF5-based readers and
writers.
* `CATALYST_RENDERING`: Same as `CATALYST` but with rendering supported added.
* `CANONICAL` (default): Build modules necessary for standard ParaView build.
......
......@@ -4,6 +4,8 @@ LIBRARY_NAME
vtkRemotingAnimation
GROUPS
PARAVIEW_CANONICAL
CONDITION
PARAVIEW_ENABLE_RENDERING
KIT
ParaView::ServerManagerKit
DEPENDS
......
......@@ -62,6 +62,7 @@ OPTIONAL_DEPENDS
VTK::IOParallelXML
VTK::IOPDAL
VTK::IOPIO
VTK::IOPLY
VTK::IOSegY
VTK::IOTecplotTable
VTK::IOTRUCHAS
......
......@@ -3,7 +3,7 @@ NAME
LIBRARY_NAME
vtkRemotingCinema
CONDITION
PARAVIEW_USE_PYTHON
PARAVIEW_USE_PYTHON AND PARAVIEW_ENABLE_RENDERING
GROUPS
PARAVIEW_CANONICAL
KIT
......
......@@ -3,9 +3,9 @@ NAME
LIBRARY_NAME
vtkRemotingExport
CONDITION
PARAVIEW_ENABLE_EXPORTERS AND PARAVIEW_BUILD_RENDERING
PARAVIEW_ENABLE_RENDERING AND PARAVIEW_ENABLE_NONESSENTIAL
GROUPS
PARAVIEW_RENDERING
PARAVIEW_CANONICAL
KIT
ParaView::ServerManagerKit
DEPENDS
......
......@@ -6,8 +6,6 @@ KIT
ParaView::ServerManagerKit
DEPENDS
ParaView::RemotingServerManager
GROUPS
PARAVIEW_CANONICAL
PRIVATE_DEPENDS
ParaView::VTKExtensionsExtraction
ParaView::VTKExtensionsMisc
......
......@@ -3,7 +3,9 @@ NAME
LIBRARY_NAME
vtkRemotingViews
GROUPS
PARAVIEW_RENDERING
PARAVIEW_CORE
CONDITION
PARAVIEW_ENABLE_RENDERING
KIT
ParaView::ServerManagerKit
IMPLEMENTS
......
......@@ -3,9 +3,9 @@ NAME
LIBRARY_NAME
vtkRemotingViewsPython
CONDITION
PARAVIEW_USE_PYTHON
PARAVIEW_USE_PYTHON AND PARAVIEW_ENABLE_RENDERING
GROUPS
PARAVIEW_RENDERING
PARAVIEW_CORE
KIT
ParaView::ServerManagerKit
DEPENDS
......
......@@ -3,9 +3,9 @@ NAME
LIBRARY_NAME
vtkicet
CONDITION
PARAVIEW_USE_MPI
PARAVIEW_USE_MPI AND PARAVIEW_ENABLE_RENDERING
GROUPS
PARAVIEW_RENDERING
PARAVIEW_CORE
PRIVATE_DEPENDS
VTK::mpi
VTK::opengl
......
......@@ -6,6 +6,4 @@ CONDITION
PARAVIEW_USE_QT
GROUPS
PARAVIEW_CORE
PARAVIEW_RENDERING
PARAVIEW_CANONICAL
THIRD_PARTY
......@@ -4,6 +4,8 @@ LIBRARY_NAME
vtkPVVTKExtensionsCGNSReader
KIT
ParaView::CoreKit
CONDITION
PARAVIEW_ENABLE_NONESSENTIAL
GROUPS
PARAVIEW_CANONICAL
DEPENDS
......
......@@ -4,6 +4,8 @@ LIBRARY_NAME
vtkPVVTKExtensionsCGNSWriter
KIT
ParaView::CoreKit
CONDITION
PARAVIEW_ENABLE_NONESSENTIAL
GROUPS
PARAVIEW_CANONICAL
DEPENDS
......
......@@ -5,7 +5,9 @@ DESCRIPTION
LIBRARY_NAME
vtkPVVTKExtensionsFiltersRendering
GROUPS
PARAVIEW_RENDERING
PARAVIEW_CORE
CONDITION
PARAVIEW_ENABLE_RENDERING OR PARAVIEW_BUILD_CANONICAL
KIT
ParaView::CoreKit
DEPENDS
......
......@@ -4,6 +4,8 @@ LIBRARY_NAME
vtkPVVTKExtensionsIOAMR
GROUPS
PARAVIEW_CANONICAL
CONDITION
PARAVIEW_ENABLE_NONESSENTIAL
KIT
ParaView::CoreKit
DEPENDS
......
......@@ -4,6 +4,8 @@ LIBRARY_NAME
vtkPVVTKExtensionsIOEnSight
GROUPS
PARAVIEW_CANONICAL
CONDITION
PARAVIEW_ENABLE_NONESSENTIAL
KIT
ParaView::CoreKit
DEPENDS
......
......@@ -2,6 +2,8 @@ NAME
ParaView::VTKExtensionsIOExodus
LIBRARY_NAME
vtkPVVTKExtensionsIOExodus
CONDITION
PARAVIEW_ENABLE_NONESSENTIAL
GROUPS
PARAVIEW_CANONICAL
KIT
......
......@@ -6,6 +6,8 @@ DESCRIPTION
Miscellaneous readers/writers.
GROUPS
PARAVIEW_CANONICAL
CONDITION
PARAVIEW_ENABLE_NONESSENTIAL
KIT
ParaView::CoreKit
DEPENDS
......
......@@ -2,6 +2,8 @@ NAME
ParaView::VTKExtensionsIOSPCTH
LIBRARY_NAME
vtkPVVTKExtensionsIOSPCTH
CONDITION
PARAVIEW_ENABLE_NONESSENTIAL
GROUPS
PARAVIEW_CANONICAL
KIT
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment