Skip to content

Add a mechanism to specify a plugin as delayed load

A draft MR adding support for delayed loading of ParaView plugins.

It adds the following:

  • Concept of EnsurePlugin in vtkSMProxy and the XML declaration, that forces a plugin to be loaded when instancying VTK objects for a proxy
  • Mechanism to automatically add EnsurePlugin when needed on XML declaration of proxies
  • Logic to LoadDelayedPlugin in vtkPVPluginLoader
  • Logic to parse the delayed_load attributes in plugin config file

See this discourse discussion for more info: https://discourse.paraview.org/t/paraview-plugin-delayed-load/13683/4

TODO:

  • Add CMake logic to generate plugin config file
  • Add CMake logic to generate plugin config file for delayed load feature
  • Add logic to load a plugin config file from the UI
  • Add logic to merge loaded plugin config file in the settings in that case
  • Add doc
  • Add testing

May be done later:

  • Add logic to discover XML content of a plugin, available in the UI

How to test:

  • Compile this ParaView branch
  • copy Examples/Plugins/ElevationFilter to a <elevation_filter> directory
  • compile ElevationFilter against ParaView and install it in a <install> directory
  • copy <elevation_filter>/Plugin/ElevationFilters/ElevationFilter.xml to <install>/lib/paraview-5.12/plugins/ElevationFilter
  • download and put plugins.xml in <install>/lib/paraview-5.12/plugins/ElevationFilter
  • export PV_PLUGIN_CONFIG_FILE=<install>/lib/paraview-5.12/plugins/ElevationFilter/plugins.xml
  • run ParaView
  • look at Tools->ManagePlugin, ElevationFilter is loaded
  • Wavelet, Apply
  • MyElevation, Apply -> Actual .so is loaded at this point.
Edited by Mathieu Westphal (Kitware)

Merge request reports