Commit ae57eec3 authored by T.J. Corona's avatar T.J. Corona

Add a userguide description for plugins

parent e591601e
......@@ -45,6 +45,7 @@ simulation domain.
extension/index.rst
workflow/index.rst
bindings/index.rst
plugin/index.rst
administration.rst
contributing.rst
......
.. _smtk-plugin-sys:
-----------------------
SMTK's Plugin System
-----------------------
SMTK's functionality can be extended by consuming projects via the
generation of *plugins*.
.. toctree::
:maxdepth: 3
plugins.rst
Plugins
========
SMTK plugins are extensions of ParaView plugins that allow for the automatic
registration of components to SMTK managers. They are created using the
CMake function "add_smtk_plugin", which requires the developer to explicitly list
a registration class "known as a Registrar" and a list of SMTK manager types
to which the plugin registers. SMTK plugins can be introduced to a
ParaView-based application in several ways. The consuming project can
1) list the plugins in a configuration file that is subsequently read at
runtime, deferring the inclusion of plugins to the application's runtime. This
approach requires plugins to reside in certain locations that the application
is expected to look, but facilitates the presentation of a plugin to the user
without automatically loading the plugin. For this approach, a consuming
project can call "generate_smtk_plugin_config_file" to convert the list of
smtk plugin targets (which can be a part of the project or imported from
another project) described by the global property "SMTK_PLUGINS" into a
configuration file. The consuming project can also
2) directly link plugins into the application. This approach pushes the
requirement of locating plugins to be a build-time dependency, which can be
advantageous for packaging. Plugins that are directly linked to an application
cannot be disabled, however (i.e. the target property ENABLED_BY_DEFAULT is
ignored, as it is true for all plugins). To use this approach, a consuming
project can call "generate_smtk_plugin_library" to to use the list of smtk
plugin targets (which can be a part of the project or imported from another
project) described by the global property "SMTK_PLUGINS" to generate a library
against which the application can link to directly incorporate the associated
plugins.
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