We dropped support for Catalyst editions with the CMake modularization changes introduced in ParaView 5.7 with intention that we’ll add support for a more robust, maintainable, and easy-to-use mechanism with similar goals.
Here’s an initial proposal to get the discussion started.
Classifying CMake options
Looking at all
PARAVIEW_* options currently available, we can broadly classify them as follows:
Features: These are additive components that can be added to the ParaView build e.g.
Plugins: These are options that enable/disable plugins e.g.
Capabilities: These are options that broadly affect the build potentially impacting all the enabled features, plugins, etc. These include options such as
Builds options: These are options that broadly impact the build e.g.
Let’s first standardize option-naming scheme based on the category they belong to.
If we adopt this convention, then some of the long-used options will need to be changed. For example,
PARAVIEW_USE_PYTHON. We will generate deprecation warning messages for such variable name changes to avoid confusion as users migrate to using these new variables.
Essentials (formerly called Catalyst Editions)
To support building more compact versions of ParaView (or Catalyst libraries) , we will provide a build option that can be supplied on the command line before the first CMake run called
PARAVIEW_BUILD_ESSENTIALS_ONLY (open to suggestions on this one). If provided and set to
TRUE, this will have the following effect:
- All plugin and feature options will default to
OFF. This ensures that the build does not have additional features unless explicitly requested.
- Several new features may become available e.g.
PARAVIEW_ESSENTIALS_ENABLE_IO. These options help further qualify what gets included in the essential set. Think of these as features that are not optional unless building Essentials. These options are hidden and enabled by default if
PARAVIEW_BUILD_ESSENTIALS_ONLYis not provided or
Here, instead of multiple Catalyst editions, users build the essentials needed for ParaView/Catalyst together with explicitly chosen features.
This is simply a proposal to get the discussion going. Comments, other suggestions, criticisms are welcome. The plan is to have the agreed-upon proposal implemented within the next week or so for inclusion in the ParaView 5.8 release planned for early next year.