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)