2 cmake_policy(SET CMP0057 NEW)
4 set(_ParaViewPlugin_cmake_dir
"${CMAKE_CURRENT_LIST_DIR}")
7 # ParaView Plugin CMake API
14 ## Conditionally output debug statements
17 controlled by the `_paraview_plugin_log` variable which contains a list of
24 If the `domain` is
enabled for debugging, the `format` argument is configured
25 and printed. It should contain `@` variable expansions to
replace rather than
26 it being done outside. This helps to avoid the cost of generating large strings
27 when debugging is disabled.
30 if (NOT _paraview_plugin_log STREQUAL
"ALL" AND
31 NOT domain IN_LIST _paraview_plugin_log)
35 string(CONFIGURE "${format}
" _paraview_plugin_debug_msg) 36 if (_paraview_plugin_debug_msg) 38 "ParaView plugin debug ${domain}: ${_paraview_plugin_debug_msg}
") 45 Similar to VTK modules, plugins first have to be discovered. The 46 `paraview_plugin_find_plugins` function does this. The output variable is the 47 list of discovered `paraview.plugin` files. 50 paraview_plugin_find_plugins(<output> [<directory>...]) 53 function (paraview_plugin_find_plugins output) 54 set(_paraview_find_plugins_all) 55 foreach (_paraview_find_plugins_directory IN LISTS ARGN) 56 file(GLOB_RECURSE _paraview_find_plugins_plugins 57 "${_paraview_find_plugins_directory}/paraview.plugin
") 58 list(APPEND _paraview_find_plugins_all 59 ${_paraview_find_plugins_plugins}) 61 set("${output}
" ${_paraview_find_plugins_all} PARENT_SCOPE) 67 The `paraview.plugin` file is parsed and used as arguments to a CMake function. 77 Pixie file reader using ADIOS 82 The supported arguments are: 84 * `NAME`: (Required) The name of the plugin. 85 * `DESCRIPTION`: (Recommended) Short text describing what the plugin does. 86 * `CONDITION`: Arguments to CMake's `if` command which may be used to hide 87 the plugin for certain platforms or other reasons. If the expression is 88 false, the module is completely ignored. 89 * `REQUIRES_MODULES`: If the plugin is enabled, these modules will be listed 90 as those required to build the enabled plugins. 92 macro (_paraview_plugin_parse_args name_output) 93 cmake_parse_arguments("_name
" 101 "A ParaView plugin requires a
name (from ${_paraview_scan_plugin_file}).
") 103 set("${name_output}
" "${_name_NAME}
") 105 cmake_parse_arguments("${_name_NAME}
" 108 "DESCRIPTION;REQUIRES_MODULES;CONDITION
" 111 if (${_name_NAME}_UNPARSED_ARGUMENTS) 113 "Unparsed arguments
for ${_name_NAME}:
" 114 "${${_name_NAME}_UNPARSED_ARGUMENTS}
") 117 if (NOT ${_name_NAME}_DESCRIPTION) 118 message(WARNING "The ${_name_NAME} module should have a
description") 120 string(REPLACE ";
" " " "${_name_NAME}_DESCRIPTION
" "${${_name_NAME}_DESCRIPTION}
") 126 Once the `paraview.plugin` files have been found, they need to be scanned to 127 determine which should be built. Generally, plugins should be scanned first in 128 order to use the `REQUIRES_MODULES` list to enable them during the scan for 129 their required modules. 132 paraview_plugin_scan( 133 PLUGIN_FILES <file>... 134 PROVIDES_PLUGINS <variable> 135 [ENABLE_BY_DEFAULT <ON|OFF>] 136 [HIDE_PLUGINS_FROM_CACHE <ON|OFF>] 137 [REQUIRES_MODULES <module>...]) 140 * `PLUGIN_FILES`: (Required) The list of plugin files to scan. 141 * `PROVIDES_PLUGINS`: (Required) This variable contains a list of the plugins 143 * `ENABLE_BY_DEFAULT`: (Defaults to `OFF`) Whether to enable plugins by 145 * `HIDE_PLUGINS_FROM_CACHE`: (Defaults to `OFF`) Whether to display options 146 to enable and disable plugins in the cache or not. 147 * `REQUIRES_MODULES`: The list of modules required by the enabled plugins. 150 function (paraview_plugin_scan) 151 cmake_parse_arguments(_paraview_scan 153 "ENABLE_BY_DEFAULT;HIDE_PLUGINS_FROM_CACHE;REQUIRES_MODULES;PROVIDES_PLUGINS
" 157 if (_paraview_scan_UNPARSED_ARGUMENTS) 160 "${_paraview_scan_UNPARSED_ARGUMENTS}
") 163 if (NOT DEFINED _paraview_scan_ENABLE_BY_DEFAULT) 164 set(_paraview_scan_ENABLE_BY_DEFAULT OFF) 167 if (NOT DEFINED _paraview_scan_HIDE_PLUGINS_FROM_CACHE) 168 set(_paraview_scan_HIDE_PLUGINS_FROM_CACHE OFF) 171 if (NOT DEFINED _paraview_scan_PROVIDES_PLUGINS) 173 "The `PROVIDES_PLUGINS` argument is required.
") 176 if (NOT _paraview_scan_PLUGIN_FILES) 178 "No plugin files given to scan.
") 181 set(_paraview_scan_option_default_type BOOL) 182 if (_paraview_scan_HIDE_PLUGINS_FROM_CACHE) 183 set(_paraview_scan_option_default_type INTERNAL) 186 set(_paraview_scan_provided_plugins) 187 set(_paraview_scan_required_modules) 189 foreach (_paraview_scan_plugin_file IN LISTS _paraview_scan_PLUGIN_FILES) 190 if (NOT IS_ABSOLUTE "${_paraview_scan_plugin_file}
") 191 set(_paraview_scan_plugin_file 192 "${CMAKE_CURRENT_SOURCE_DIR}/${_paraview_scan_plugin_file}
") 195 set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}
" APPEND 197 CMAKE_CONFIGURE_DEPENDS "${_paraview_scan_plugin_file}
") 199 file(READ "${_paraview_scan_plugin_file}
" _paraview_scan_plugin_args) 201 string(REGEX REPLACE "#[^\n]*\n
" "\n
" _paraview_scan_plugin_args "${_paraview_scan_plugin_args}
") 202 # Use argument splitting. 203 string(REGEX REPLACE "( |\n)+
" ";
" _paraview_scan_plugin_args "${_paraview_scan_plugin_args}
") 204 _paraview_plugin_parse_args(_paraview_scan_plugin_name ${_paraview_scan_plugin_args}) 205 _paraview_plugin_debug(plugin "@_paraview_scan_plugin_name@ declared by @_paraview_scan_plugin_file
@") 207 list(APPEND _paraview_scan_all_plugins 208 "${_paraview_scan_plugin_name}
") 210 set(_paraview_scan_plugin_default "${_paraview_scan_ENABLE_BY_DEFAULT}
") 211 if (DEFINED "_paraview_plugin_default_${_paraview_scan_plugin_name}
") 212 set(_paraview_scan_plugin_default "${_paraview_plugin_default_${_paraview_scan_plugin_name}}
") 214 option("PARAVIEW_PLUGIN_ENABLE_${_paraview_scan_plugin_name}
" 215 "Enable the ${_paraview_scan_plugin_name} plugin. ${${_paraview_scan_plugin_name}_DESCRIPTION}
" 216 "${_paraview_scan_plugin_default}
") 217 set("_paraview_scan_enable_${_paraview_scan_plugin_name}
" 218 "${PARAVIEW_PLUGIN_ENABLE_${_paraview_scan_plugin_name}}
") 220 set_property(CACHE "PARAVIEW_PLUGIN_ENABLE_${_paraview_scan_plugin_name}
" 222 TYPE "${_paraview_scan_option_default_type}
") 224 if (DEFINED ${_paraview_scan_plugin_name}_CONDITION) 225 if (NOT (${${_paraview_scan_plugin_name}_CONDITION})) 226 if (DEFINED "PARAVIEW_PLUGIN_ENABLE_${_paraview_scan_plugin_name}
") 227 set_property(CACHE "PARAVIEW_PLUGIN_ENABLE_${_paraview_scan_plugin_name}
" 231 _paraview_plugin_debug(plugin "@_paraview_scan_plugin_name@ hidden by its `CONDITION`
") 236 if (_paraview_scan_enable_${_paraview_scan_plugin_name}) 237 _paraview_plugin_debug(plugin "@_paraview_scan_plugin_name@ requested via cache
value") 238 list(APPEND _paraview_scan_provided_plugins 239 "${_paraview_scan_plugin_name}
") 240 list(APPEND _paraview_scan_required_modules 241 ${${_paraview_scan_plugin_name}_REQUIRES_MODULES}) 246 "_paraview_plugin_${_paraview_scan_plugin_name}_file
" "${_paraview_scan_plugin_file}
") 249 "_paraview_plugin_${_paraview_scan_plugin_name}_description
" "${${_paraview_scan_plugin_name}_DESCRIPTION}
") 252 "_paraview_plugin_${_paraview_scan_plugin_name}_required_modules
" "${${_paraview_scan_plugin_name}_REQUIRES_MODULES}
") 255 if (DEFINED _paraview_scan_REQUIRES_MODULES) 256 set("${_paraview_scan_REQUIRES_MODULES}
" 257 ${_paraview_scan_required_modules} 261 set("${_paraview_scan_PROVIDES_PLUGINS}
" 262 ${_paraview_scan_provided_plugins} 266 function (_paraview_plugin_check_destdir variable) 267 if (NOT DEFINED "${variable}
") 269 "It appears as though ${variable} is not defined, but is needed to
" 270 "default a destination directory
for build artifacts. Usually
this is
" 271 "resolved by `include(GNUInstallDirs)` at the
top of the project.
") 278 Once all plugins have been scanned, they need to be built. 281 paraview_plugin_build( 283 [AUTOLOAD <plugin>...] 284 [PLUGINS_COMPONENT <component>] 287 [INSTALL_EXPORT <export>] 288 [CMAKE_DESTINATION <destination>] 289 [TARGET_COMPONENT <component>] 290 [INSTALL_HEADERS <ON|OFF>] 291 [USE_FILE_SETS <ON|OFF>] 293 [HEADERS_DESTINATION <destination>] 294 [RUNTIME_DESTINATION <destination>] 295 [LIBRARY_DESTINATION <destination>] 296 [LIBRARY_SUBDIRECTORY <subdirectory>] 297 [ADD_INSTALL_RPATHS <ON|OFF>] 299 [PLUGINS_FILE_NAME <filename>] 300 [DISABLE_XML_DOCUMENTATION <ON|OFF>]) 302 [GENERATE_SPDX <ON|OFF>] 303 [SPDX_DOCUMENT_NAMESPACE <uri>] 304 [SPDX_DOWNLOAD_LOCATION <url>] 307 * `PLUGINS`: (Required) The list of plugins to build. May be empty. 308 * `AUTOLOAD`: A list of plugins to mark for autoloading. 309 * `PLUGINS_COMPONENT`: (Defaults to `paraview_plugins`) The installation 310 component to use for installed plugins. 311 * `TARGET`: (Recommended) The name of an interface target to generate. This 312 provides. an initialization function `<TARGET>_initialize` which 313 initializes static plugins. The function is provided, but is a no-op for 314 shared plugin builds. 315 * `INSTALL_EXPORT`: If provided, the generated target will be added to the 317 * `CMAKE_DESTINATION`: If provided, the plugin target's properties will be 318 written to a file named `<TARGET>-paraview-plugin-properties.cmake` in the 319 specified destination. 320 * `TARGET_COMPONENT`: (Defaults to `development`) The component to use for 322 * `INSTALL_HEADERS`: (Defaults to `ON`) Whether to install headers or not. 323 * `USE_FILE_SETS`: (Defaults to `OFF`) Whether to use `FILE_SET` source 324 specification or not. 325 * `HEADERS_DESTINATION`: (Defaults to `${CMAKE_INSTALL_INCLUDEDIR}`) Where to 326 install include files. 327 * `RUNTIME_DESTINATION`: (Defaults to `${CMAKE_INSTALL_BINDIR}`) Where to 328 install runtime files. 329 * `LIBRARY_DESTINATION`: (Defaults to `${CMAKE_INSTALL_LIBDIR}`) Where to 330 install modules built by plugins. 331 * `LIBRARY_SUBDIRECTORY`: (Defaults to `""`) Where to install the plugins 332 themselves. Each plugin lives in a directory of its name in 333 `<RUNTIME_DESTINATION>/<LIBRARY_SUBDIRECTORY>` (for Windows) or 334 `<LIBRARY_DESTINATION>/<LIBRARY_SUBDIRECTORY>` for other platforms. 335 * `ADD_INSTALL_RPATHS`: (Defaults to `ON`) If specified, an RPATH to load 336 dependent libraries from the `LIBRARY_DESTINATION` from the plugins will be 338 * `PLUGINS_FILE_NAME`: The name of the XML plugin file to generate for the 339 built plugins. This file will be placed under 340 `<LIBRARY_DESTINATION>/<LIBRARY_SUBDIRECTORY>`. It will be installed with 341 the `plugin` component. 342 * `DISABLE_XML_DOCUMENTATION`: (Defaults to `OFF`) Whether to forcefully 343 disable XML documentation or not. 344 * ``GENERATE_SPDX``: (Defaults to ``OFF``) Whether or not to generate and install 345 SPDX file for each modules. 346 * ``SPDX_DOCUMENT_NAMESPACE``: (Defaults to ``""``) Document namespace to use when 347 generating SPDX files. 348 * ``SPDX_DOWNLOAD_LOCATION``: (Defaults to ``""``) Download location to use when 349 generating SPDX files. 351 function (paraview_plugin_build) 352 cmake_parse_arguments(_paraview_build 354 "HEADERS_DESTINATION;RUNTIME_DESTINATION;LIBRARY_DESTINATION;LIBRARY_SUBDIRECTORY;TARGET;PLUGINS_FILE_NAME;INSTALL_EXPORT;CMAKE_DESTINATION;PLUGINS_COMPONENT;TARGET_COMPONENT;ADD_INSTALL_RPATHS;INSTALL_HEADERS;DISABLE_XML_DOCUMENTATION;GENERATE_SPDX;SPDX_DOCUMENT_NAMESPACE;SPDX_DOWNLOAD_LOCATION;USE_FILE_SETS
" 358 if (_paraview_build_UNPARSED_ARGUMENTS) 361 "${_paraview_build_UNPARSED_ARGUMENTS}
") 364 if (NOT DEFINED _paraview_build_HEADERS_DESTINATION) 365 _paraview_plugin_check_destdir(CMAKE_INSTALL_INCLUDEDIR) 366 set(_paraview_build_HEADERS_DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}
") 369 if (NOT DEFINED _paraview_build_RUNTIME_DESTINATION) 370 _paraview_plugin_check_destdir(CMAKE_INSTALL_BINDIR) 371 set(_paraview_build_RUNTIME_DESTINATION "${CMAKE_INSTALL_BINDIR}
") 374 if (NOT DEFINED _paraview_build_LIBRARY_DESTINATION) 375 _paraview_plugin_check_destdir(CMAKE_INSTALL_LIBDIR) 376 set(_paraview_build_LIBRARY_DESTINATION "${CMAKE_INSTALL_LIBDIR}
") 379 if (NOT DEFINED _paraview_build_LIBRARY_SUBDIRECTORY) 380 set(_paraview_build_LIBRARY_SUBDIRECTORY "") 383 if (NOT _paraview_build_DISABLE_XML_DOCUMENTATION) 384 set(_paraview_build_DISABLE_XML_DOCUMENTATION OFF) 387 if (NOT DEFINED _paraview_build_GENERATE_SPDX) 388 set(_paraview_build_GENERATE_SPDX OFF) 391 if (NOT _paraview_build_SPDX_DOCUMENT_NAMESPACE) 392 set(_paraview_build_SPDX_DOCUMENT_NAMESPACE "") 395 if (NOT _paraview_build_SPDX_DOWNLOAD_LOCATION) 396 set(_paraview_build_SPDX_DOWNLOAD_LOCATION "") 399 if (NOT DEFINED _paraview_build_INSTALL_HEADERS) 400 set(_paraview_build_INSTALL_HEADERS ON) 403 if (NOT DEFINED _paraview_build_USE_FILE_SETS) 404 set(_paraview_build_USE_FILE_SETS OFF) 407 if (NOT DEFINED _paraview_build_ADD_INSTALL_RPATHS) 408 set(_paraview_build_ADD_INSTALL_RPATHS ON) 410 if (_paraview_build_ADD_INSTALL_RPATHS) 411 if (NOT _paraview_build_LIBRARY_SUBDIRECTORY STREQUAL "") 412 file(RELATIVE_PATH _paraview_build_relpath 413 "/prefix/${_paraview_build_LIBRARY_DESTINATION}/${_paraview_build_LIBRARY_SUBDIRECTORY}/plugin
" 414 "/prefix/${_paraview_build_LIBRARY_DESTINATION}
") 416 file(RELATIVE_PATH _paraview_build_relpath 417 "/prefix/${_paraview_build_LIBRARY_DESTINATION}/plugin
" 418 "/prefix/${_paraview_build_LIBRARY_DESTINATION}
") 421 list(APPEND CMAKE_INSTALL_RPATH 422 "@loader_path/${_paraview_build_relpath}
") 424 list(APPEND CMAKE_INSTALL_RPATH 425 "$ORIGIN/${_paraview_build_relpath}
") 429 if (DEFINED _paraview_build_INSTALL_EXPORT 430 AND NOT DEFINED _paraview_build_TARGET) 432 "The `INSTALL_EXPORT` argument requires the `TARGET` argument.
") 435 if (DEFINED _paraview_build_INSTALL_EXPORT 436 AND NOT DEFINED _paraview_build_CMAKE_DESTINATION) 438 "The `INSTALL_EXPORT` argument requires the `CMAKE_DESTINATION` argument.
") 441 set(_paraview_build_extra_destinations) 442 if (DEFINED _paraview_build_CMAKE_DESTINATION) 443 list(APPEND _paraview_build_extra_destinations 445 if (NOT DEFINED _paraview_build_TARGET) 447 "The `CMAKE_DESTINATION` argument requires the `TARGET` argument.
") 451 if (DEFINED _paraview_build_TARGET) 452 _vtk_module_split_module_name("${_paraview_build_TARGET}
" _paraview_build) 453 string(REPLACE "::
" "_
" _paraview_build_target_safe "${_paraview_build_TARGET}
") 456 _vtk_module_check_destinations(_paraview_build_ 461 ${_paraview_build_extra_destinations}) 463 if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) 464 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${_paraview_build_RUNTIME_DESTINATION}
") 466 if (NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) 467 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${_paraview_build_LIBRARY_DESTINATION}
") 469 if (NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) 470 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${_paraview_build_LIBRARY_DESTINATION}
") 474 set(_paraview_build_plugin_destination "${_paraview_build_RUNTIME_DESTINATION}
") 476 set(_paraview_build_plugin_destination "${_paraview_build_LIBRARY_DESTINATION}
") 478 if (NOT _paraview_build_LIBRARY_SUBDIRECTORY STREQUAL "") 479 string(APPEND _paraview_build_plugin_destination "/${_paraview_build_LIBRARY_SUBDIRECTORY}
") 482 foreach (_paraview_build_plugin IN LISTS _paraview_build_PLUGINS) 483 get_property(_paraview_build_plugin_file GLOBAL 484 PROPERTY "_paraview_plugin_${_paraview_build_plugin}_file
") 485 if (NOT _paraview_build_plugin_file) 487 "The requested ${_paraview_build_plugin} plugin is not a ParaView plugin.
") 490 _paraview_plugin_debug(building "@_paraview_build_plugin@ is being built
") 492 # Make a variable for where the plugin should go. 493 set(_paraview_build_plugin_directory 494 "${_paraview_build_plugin_destination}/${_paraview_build_plugin}
") 496 # TODO: Support external plugins? 497 get_filename_component(_paraview_build_plugin_dir "${_paraview_build_plugin_file}
" DIRECTORY) 498 file(RELATIVE_PATH _paraview_build_plugin_subdir "${CMAKE_SOURCE_DIR}
" "${_paraview_build_plugin_dir}
") 500 "${CMAKE_SOURCE_DIR}/${_paraview_build_plugin_subdir}
" 501 "${CMAKE_BINARY_DIR}/${_paraview_build_plugin_subdir}
") 504 if (DEFINED _paraview_build_TARGET) 505 add_library("${_paraview_build_TARGET_NAME}
" INTERFACE) 506 if (_paraview_build_NAMESPACE) 507 add_library("${_paraview_build_TARGET}
" ALIAS "${_paraview_build_TARGET_NAME}
") 509 target_include_directories("${_paraview_build_TARGET_NAME}
" 511 "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_paraview_build_target_safe}>
" 512 "$<INSTALL_INTERFACE:${_paraview_build_HEADERS_DESTINATION}>
") 513 set(_paraview_build_include_file 514 "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_paraview_build_target_safe}/${_paraview_build_target_safe}.h
") 516 set(_paraview_static_plugins) 517 foreach (_paraview_build_plugin IN LISTS _paraview_build_PLUGINS) 518 get_property(_paraview_build_plugin_type 519 TARGET "${_paraview_build_plugin}
" 521 if (_paraview_build_plugin_type STREQUAL "STATIC_LIBRARY
") 522 list(APPEND _paraview_static_plugins 523 "${_paraview_build_plugin}
") 527 if (_paraview_static_plugins) 528 target_link_libraries("${_paraview_build_TARGET_NAME}
" 530 ParaView::RemotingCore 531 ${_paraview_static_plugins}) 533 set(_paraview_build_declarations) 534 set(_paraview_build_calls) 535 set(_paraview_build_names) 536 foreach (_paraview_build_plugin IN LISTS _paraview_static_plugins) 537 string(APPEND _paraview_build_declarations 538 "PV_PLUGIN_IMPORT_INIT(${_paraview_build_plugin});\n
") 539 string(APPEND _paraview_build_calls 540 " if (sname == \
"${_paraview_build_plugin}\") 544 static bool loaded = false; 547 loaded = PV_PLUGIN_IMPORT(${_paraview_build_plugin}); 552 string(APPEND _paraview_build_names
553 " names.emplace_back(\"${_paraview_build_plugin}\");\n")
556 set(_paraview_build_include_content
557 "#ifndef ${_paraview_build_target_safe}_h 558 #define ${_paraview_build_target_safe}_h 560 #define PARAVIEW_BUILDING_PLUGIN 561 #define PARAVIEW_PLUGIN_BUILT_SHARED 0 562 #include \"vtkPVPlugin.h\" 563 #include \"vtkPVPluginLoader.h\" 564 #include \"vtkPVPluginTracker.h\" 567 ${_paraview_build_declarations} 568 static bool ${_paraview_build_target_safe}_static_plugins_load(const char* name); 569 static bool ${_paraview_build_target_safe}_static_plugins_search(const char* name); 570 static void ${_paraview_build_target_safe}_static_plugins_list(const char* appname, std::vector<std::string>& names); 572 static void ${_paraview_build_target_safe}_initialize() 574 vtkPVPluginLoader::RegisterLoadPluginCallback(${_paraview_build_target_safe}_static_plugins_load); 575 vtkPVPluginTracker::RegisterStaticPluginSearchFunction(${_paraview_build_target_safe}_static_plugins_search); 576 vtkPVPluginTracker::RegisterStaticPluginListFunction(${_paraview_build_target_safe}_static_plugins_list); 579 static bool ${_paraview_build_target_safe}_static_plugins_func(const char* name, bool load); 581 static bool ${_paraview_build_target_safe}_static_plugins_load(const char* name) 583 return ${_paraview_build_target_safe}_static_plugins_func(name, true); 586 static bool ${_paraview_build_target_safe}_static_plugins_search(const char* name) 588 return ${_paraview_build_target_safe}_static_plugins_func(name, false); 591 static void ${_paraview_build_target_safe}_static_plugins_list(const char* appname, std::vector<std::string>& names) 593 ${_paraview_build_names} 598 static bool ${_paraview_build_target_safe}_static_plugins_func(const char* name, bool load) 600 std::string const sname = name; 602 ${_paraview_build_calls} 608 set(_paraview_build_include_content
609 "#ifndef ${_paraview_build_target_safe}_h 610 #define ${_paraview_build_target_safe}_h 612 static void ${_paraview_build_target_safe}_initialize() 620 OUTPUT
"${_paraview_build_include_file}" 621 CONTENT
"${_paraview_build_include_content}")
622 if (_paraview_build_INSTALL_HEADERS)
624 FILES
"${_paraview_build_include_file}" 625 DESTINATION
"${_paraview_build_HEADERS_DESTINATION}" 626 COMPONENT
"${_paraview_build_TARGET_COMPONENT}")
629 if (DEFINED _paraview_build_INSTALL_EXPORT)
631 TARGETS
"${_paraview_build_TARGET_NAME}" 632 EXPORT "${_paraview_build_INSTALL_EXPORT}" 633 COMPONENT
"${_paraview_build_TARGET_COMPONENT}")
635 set(_paraview_build_required_exports_include_file_name
"${_paraview_build_INSTALL_EXPORT}-${_paraview_build_TARGET_NAME}-targets-depends.cmake")
636 set(_paraview_build_required_exports_include_build_file
637 "${CMAKE_BINARY_DIR}/${_paraview_build_CMAKE_DESTINATION}/${_paraview_build_required_exports_include_file_name}")
638 set(_paraview_build_required_exports_include_contents
"")
639 get_property(_paraview_build_required_exports GLOBAL
640 PROPERTY
"paraview_plugin_${_paraview_build_TARGET}_required_exports")
641 if (_paraview_build_required_exports)
642 foreach (_paraview_build_required_export IN LISTS _paraview_build_required_exports)
643 string(APPEND _paraview_build_required_exports_include_contents
644 "include(\"\${CMAKE_CURRENT_LIST_DIR}/${_paraview_build_required_export}-targets.cmake\")\n" 645 "include(\"\${CMAKE_CURRENT_LIST_DIR}/${_paraview_build_required_export}-vtk-module-properties.cmake\")\n" 648 get_property(_paraview_build_modules GLOBAL
649 PROPERTY
"paraview_plugin_${_paraview_build_required_export}_modules")
650 if (_paraview_build_modules)
651 vtk_module_export_find_packages(
652 CMAKE_DESTINATION
"${_paraview_build_CMAKE_DESTINATION}" 653 FILE_NAME
"${_paraview_build_required_export}-vtk-module-find-packages.cmake" 654 MODULES ${_paraview_build_modules})
656 # TODO: The list of modules should be checked
for their `_FOUND`
657 # variables being
false and propagate it up through the parent
658 # project
's `_FOUND` variable. 659 string(APPEND _paraview_build_required_exports_include_contents 660 "set(CMAKE_FIND_PACKAGE_NAME_save \"\${CMAKE_FIND_PACKAGE_NAME}\")\n" 661 "set(${_paraview_build_required_export}_FIND_QUIETLY \"\${\${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY}\")\n" 662 "set(${_paraview_build_required_export}_FIND_COMPONENTS)\n" 663 "set(CMAKE_FIND_PACKAGE_NAME \"${_paraview_build_required_export}\")\n" 664 "include(\"\${CMAKE_CURRENT_LIST_DIR}/${_paraview_build_required_export}-vtk-module-find-packages.cmake\")\n" 665 "set(CMAKE_FIND_PACKAGE_NAME \"\${CMAKE_FIND_PACKAGE_NAME_save}\")\n" 666 "unset(${_paraview_build_required_export}_FIND_QUIETLY)\n" 667 "unset(${_paraview_build_required_export}_FIND_COMPONENTS)\n" 668 "unset(CMAKE_FIND_PACKAGE_NAME_save)\n" 675 OUTPUT "${_paraview_build_required_exports_include_build_file}" 676 CONTENT "${_paraview_build_required_exports_include_contents}") 677 if (_paraview_build_INSTALL_HEADERS) 679 FILES "${_paraview_build_required_exports_include_build_file}" 680 DESTINATION "${_paraview_build_CMAKE_DESTINATION}" 681 COMPONENT "${_paraview_build_TARGET_COMPONENT}") 684 set(_paraview_build_namespace_args) 685 if (_paraview_build_NAMESPACE) 686 list(APPEND _paraview_build_namespace_args 687 NAMESPACE "${_paraview_build_NAMESPACE}::") 690 if (_paraview_build_INSTALL_HEADERS) 692 EXPORT "${_paraview_build_INSTALL_EXPORT}" 693 ${_paraview_build_namespace_args} 694 FILE "${CMAKE_BINARY_DIR}/${_paraview_build_CMAKE_DESTINATION}/${_paraview_build_INSTALL_EXPORT}-targets.cmake") 696 EXPORT "${_paraview_build_INSTALL_EXPORT}" 697 DESTINATION "${_paraview_build_CMAKE_DESTINATION}" 698 ${_paraview_build_namespace_args} 699 FILE "${_paraview_build_INSTALL_EXPORT}-targets.cmake" 700 COMPONENT "${_paraview_build_TARGET_COMPONENT}") 705 if (DEFINED _paraview_build_PLUGINS_FILE_NAME) 706 set(_paraview_build_xml_file 707 "${CMAKE_BINARY_DIR}/${_paraview_build_plugin_destination}/${_paraview_build_PLUGINS_FILE_NAME}") 708 set(_paraview_build_xml_content 709 "<?xml version=\"1.0\"?>\n<Plugins>\n") 710 foreach (_paraview_build_plugin IN LISTS _paraview_build_PLUGINS) 711 set(_paraview_build_autoload 0) 712 if (_paraview_build_plugin IN_LIST _paraview_build_AUTOLOAD) 713 set(_paraview_build_autoload 1) 715 string(APPEND _paraview_build_xml_content 716 " <Plugin name=\"${_paraview_build_plugin}\" auto_load=\"${_paraview_build_autoload}\"/>\n") 718 string(APPEND _paraview_build_xml_content 722 OUTPUT "${_paraview_build_xml_file}" 723 CONTENT "${_paraview_build_xml_content}") 725 FILES "${_paraview_build_xml_file}" 726 DESTINATION "${_paraview_build_plugin_destination}" 727 COMPONENT "${_paraview_build_TARGET_COMPONENT}") 729 if (DEFINED _paraview_build_INSTALL_EXPORT) 730 set_property(TARGET "${_paraview_build_TARGET_NAME}" 732 "INTERFACE_paraview_plugin_plugins_file" "${_paraview_build_xml_file}") 734 if (DEFINED _paraview_build_RUNTIME_DESTINATION) 735 set_property(TARGET "${_paraview_build_TARGET_NAME}" 737 "INTERFACE_paraview_plugin_plugins_file_install" "${_paraview_build_plugin_destination}/${_paraview_build_PLUGINS_FILE_NAME}") 740 if (DEFINED _paraview_build_CMAKE_DESTINATION) 741 set(_paraview_build_properties_filename "${_paraview_build_INSTALL_EXPORT}-paraview-plugin-properties.cmake") 742 set(_paraview_build_properties_build_file 743 "${CMAKE_BINARY_DIR}/${_paraview_build_CMAKE_DESTINATION}/${_paraview_build_properties_filename}") 744 set(_paraview_build_properties_install_file 745 "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_paraview_build_properties_filename}.install") 747 file(WRITE "${_paraview_build_properties_build_file}") 748 file(WRITE "${_paraview_build_properties_install_file}") 750 _vtk_module_write_import_prefix( 751 "${_paraview_build_properties_install_file}" 752 "${_paraview_build_CMAKE_DESTINATION}") 754 file(APPEND "${_paraview_build_properties_build_file}" 755 "set_property(TARGET \"${_paraview_build_TARGET}\" 757 INTERFACE_paraview_plugin_plugins_file \"${_paraview_build_xml_file}\")\n") 758 file(APPEND "${_paraview_build_properties_install_file}" 759 "set_property(TARGET \"${_paraview_build_TARGET}\" 761 INTERFACE_paraview_plugin_plugins_file \"\${_vtk_module_import_prefix}/${_paraview_build_plugin_destination}/${_paraview_build_PLUGINS_FILE_NAME}\") 762 unset(_vtk_module_import_prefix)\n") 764 if (_paraview_build_INSTALL_HEADERS) 766 FILES "${_paraview_build_properties_install_file}" 767 DESTINATION "${_paraview_build_CMAKE_DESTINATION}" 768 RENAME "${_paraview_build_properties_filename}" 769 COMPONENT "${_paraview_build_TARGET_COMPONENT}") 777 ## Plugin configuration files 779 Applications will want to consume plugin targets by discovering their locations 780 at runtime. In order to facilitate this, ParaView supports loading a `conf` 781 file which contains the locations of plugin targets' XML files. The plugins
782 specified in that file is then
787 PLUGINS_TARGETS <target>...
788 BUILD_DESTINATION <destination>
790 [INSTALL_DESTINATION <destination>]
791 [COMPONENT <component>])
794 * `
NAME`: (Required) The base
name of the configuration file.
795 * `PLUGINS_TARGETS`: (Required) The list of plugin targets to add to the
797 * `BUILD_DESTINATION`: (Required) Where to place the configuration file in
799 * `INSTALL_DESTINATION`: Where to install the configuration file in the
800 install tree. If not provided, the configuration file will not be
802 * `COMPONENT`: (Defaults to `runtime`) The
component to use when installing
803 the configuration file.
806 cmake_parse_arguments(_paraview_plugin_conf
808 "NAME;BUILD_DESTINATION;INSTALL_DESTINATION;COMPONENT" 812 if (_paraview_plugin_conf_UNPARSED_ARGUMENTS)
814 "Unparsed arguments for paraview_plugin_write_conf: " 815 "${_paraview_plugin_conf_UNPARSED_ARGUMENTS}")
818 if (NOT _paraview_plugin_conf_NAME)
820 "The `NAME` must not be empty.")
823 if (NOT DEFINED _paraview_plugin_conf_BUILD_DESTINATION)
825 "The `BUILD_DESTINATION` argument is required.")
828 if (NOT DEFINED _paraview_plugin_conf_PLUGINS_TARGETS)
830 "The `PLUGINS_TARGETS` argument is required.")
833 if (NOT DEFINED _paraview_plugin_conf_COMPONENT)
834 set(_paraview_plugin_conf_COMPONENT
"runtime")
837 set(_paraview_plugin_conf_file_name
838 "${_paraview_plugin_conf_NAME}.conf")
839 set(_paraview_plugin_conf_build_file
840 "${CMAKE_BINARY_DIR}/${_paraview_plugin_conf_BUILD_DESTINATION}/${_paraview_plugin_conf_file_name}")
841 set(_paraview_plugin_conf_install_file
842 "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_paraview_plugin_conf_file_name}.install")
843 set(_paraview_plugin_conf_build_contents)
844 set(_paraview_plugin_conf_install_contents)
845 foreach (_paraview_plugin_conf_target IN LISTS _paraview_plugin_conf_PLUGINS_TARGETS)
846 get_property(_paraview_plugin_conf_plugins_target_is_imported
847 TARGET
"${_paraview_plugin_conf_target}" 849 if (_paraview_plugin_conf_plugins_target_is_imported)
850 get_property(_paraview_plugin_conf_plugins_target_xml_build
851 TARGET
"${_paraview_plugin_conf_target}" 852 PROPERTY
"INTERFACE_paraview_plugin_plugins_file")
853 set(_paraview_plugin_conf_plugins_target_xml_install
854 "${_paraview_plugin_conf_plugins_target_xml_build}")
856 file(RELATIVE_PATH _paraview_plugin_conf_rel_path
857 "/prefix/${CMAKE_INSTALL_PREFIX}" 858 "/prefix/${_paraview_plugin_conf_plugins_target_xml_install}")
859 # If the external plugins XML file is under our installation destination, 860 # use a relative path to it, otherwise keep the absolute path. 861 if (NOT _paraview_plugin_conf_rel_path MATCHES
"^\.\./")
862 file(RELATIVE_PATH _paraview_plugin_conf_plugins_target_xml_install
863 "/prefix/${CMAKE_INSTALL_PREFIX}/${_paraview_plugin_conf_INSTALL_DESTINATION}" 864 "/prefix/${_paraview_plugin_conf_plugins_target_xml_install}")
867 get_property(_paraview_plugin_conf_plugins_target_is_alias
868 TARGET
"${_paraview_plugin_conf_target}" 869 PROPERTY ALIASED_TARGET
871 if (_paraview_plugin_conf_plugins_target_is_alias)
872 get_property(_paraview_plugin_conf_target
873 TARGET
"${_paraview_plugin_conf_target}" 874 PROPERTY ALIASED_TARGET)
876 get_property(_paraview_plugin_conf_plugins_target_xml_build
877 TARGET
"${_paraview_plugin_conf_target}" 878 PROPERTY
"INTERFACE_paraview_plugin_plugins_file")
879 get_property(_paraview_plugin_conf_plugins_target_xml_install
880 TARGET
"${_paraview_plugin_conf_target}" 881 PROPERTY
"INTERFACE_paraview_plugin_plugins_file_install")
883 if (_paraview_plugin_conf_plugins_target_xml_install)
884 # Compute the relative path within the install tree. 885 file(RELATIVE_PATH _paraview_plugin_conf_plugins_target_xml_install
886 "/prefix/${_paraview_plugin_conf_INSTALL_DESTINATION}" 887 "/prefix/${_paraview_plugin_conf_plugins_target_xml_install}")
891 # TODO: Write out in JSON instead. 892 if (_paraview_plugin_conf_plugins_target_xml_build)
893 string(APPEND _paraview_plugin_conf_build_contents
894 "${_paraview_plugin_conf_plugins_target_xml_build}\n")
896 if (_paraview_plugin_conf_plugins_target_xml_install)
897 string(APPEND _paraview_plugin_conf_install_contents
898 "${_paraview_plugin_conf_plugins_target_xml_install}\n")
903 OUTPUT
"${_paraview_plugin_conf_build_file}" 904 CONTENT
"${_paraview_plugin_conf_build_contents}")
906 if (_paraview_plugin_conf_INSTALL_DESTINATION)
908 OUTPUT
"${_paraview_plugin_conf_install_file}" 909 CONTENT
"${_paraview_plugin_conf_install_contents}")
911 FILES
"${_paraview_plugin_conf_install_file}" 912 DESTINATION
"${_paraview_plugin_conf_INSTALL_DESTINATION}" 913 RENAME
"${_paraview_plugin_conf_file_name}" 914 COMPONENT
"${_paraview_plugin_conf_COMPONENT}")
918 set(_paraview_plugin_source_dir
"${CMAKE_CURRENT_LIST_DIR}")
927 [REQUIRED_ON_SERVER] [REQUIRED_ON_CLIENT]
930 [MODULE_FILES <vtk.module>...]
931 [MODULE_ARGS <arg>...]
932 [MODULES <module>...]
933 [SOURCES <source>...]
934 [SERVER_MANAGER_XML <xml>...]
935 [MODULE_INSTALL_EXPORT <export>]
937 [UI_INTERFACES <interface>...]
938 [UI_RESOURCES <resource>...]
941 [PYTHON_MODULES <module>...]
943 [INITIALIZERS <initializerFunction>...]
945 [EXTRA_INCLUDES <file>...]
947 [REQUIRED_PLUGINS <plugin>...]
950 [XML_DOCUMENTATION <ON|OFF>]
951 [DOCUMENTATION_DIR <directory>]
952 [DOCUMENTATION_ADD_PATTERNS <pattern>...]
953 [DOCUMENTATION_TOC <string>]
954 [DOCUMENTATION_DEPENDENCIES <target>...]
956 [FORCE_STATIC <ON|OFF>])
958 [TRANSLATIONS_DIRECTORY <directory>]
959 [TRANSLATIONS_TARGET <target>]
962 * `REQUIRED_ON_SERVER`: The plugin is required to be loaded
on the server
for 963 proper functionality.
964 * `REQUIRED_ON_CLIENT`: The plugin is required to be loaded
on the client
for 965 proper functionality.
967 * `MODULE_FILES`: Paths to `
vtk.module` files describing modules to include
969 * `MODULE_ARGS`: Arguments to pass to `vtk_module_build`
for included modules.
970 * `MODULES`: Modules to include in the plugin. These modules will be wrapped
971 using client server and have their server manager XML files processed.
972 * `SOURCES`: Source files
for the plugin.
973 * `SERVER_MANAGER_XML`: Server manager XML files
for the plugin.
974 * `UI_INTERFACES`: Interfaces to initialize, in the given
order. See the
975 plugin interfaces section
for more
details.
976 * `MODULE_INSTALL_EXPORT`: (Defaults to `<
name>`) If provided, any modules
977 will be added to the given export
set.
978 * `UI_RESOURCES`: Qt resource files to include with the plugin.
979 * `UI_FILES`: Qt `.ui` files to include with the plugin.
980 * `PYTHON_MODULES`: Python modules to embed into the plugin.
981 * `INITIALIZERS`: An ordered list of free functions (declared in `EXTRA_INCLUDES`
982 if needed) to be invoked when the plugin is loaded. Each
function must be
983 callable with no arguments.
984 * `EXTRA_INCLUDES`: Headers needed by the generated plugin code (such as `INITIALIZERS`).
985 Filename paths passed without quotes will be
double-quoted (e.g., \verbatim`#include
"foo.h"`\endverbatim),
986 while paths that start with angle- or
double-quotes will not be.
987 * `REQUIRED_PLUGINS`: Plugins which must be loaded
for this plugin to
988 function. These plugins
do not need to be available at build
time and are
989 therefore their existence is not checked here.
990 * `EULA`: A file with
content to display as an end-user license agreement
991 before the plugin is initialized at runtime.
992 * `XML_DOCUMENTATION`: (Defaults to `ON`) If
set,
documentation will be
993 generated
for the associated XML files.
994 * `DOCUMENTATION_DIR`: If specified, `*.html`, `*.css`, `*.png`, `*.js`, and `*.jpg`
995 files in
this directory will be copied and made available to the
997 * `DOCUMENTATION_ADD_PATTERNS`: If specified, adds patterns
for the
documentation files
998 within `DOCUMENTATION_DIR` other than the
default ones (see `DOCUMENTATION_DIR` help)
999 * `DOCUMENTATION_TOC`: If specified, use
this string for describing the table of
1001 * `DOCUMENTATION_DEPENDENCIES`: Targets that are needed to be built before
1004 * `FORCE_STATIC`: (Defaults to `OFF`) If
set, the plugin will be built
1005 statically so that it can be embedded into an application.
1006 * `TRANSLATIONS_DIRECTORY`: (Defaults to `${CMAKE_CURRENT_BINARY_DIR}/Translations`)
1007 The path of the directory where translation source files are stored.
1008 * `TRANSLATION_TARGET` : The name of the target on which to add the ts file as
1012 if (NOT name STREQUAL _paraview_build_plugin)
1014 "The ${_paraview_build_plugin}'s CMakeLists.txt may not add the ${name} " 1018 cmake_parse_arguments(_paraview_add_plugin
1019 "REQUIRED_ON_SERVER;REQUIRED_ON_CLIENT"
1020 "
VERSION;EULA;EXPORT;MODULE_INSTALL_EXPORT;XML_DOCUMENTATION;DOCUMENTATION_DIR;FORCE_STATIC;DOCUMENTATION_TOC;TRANSLATIONS_DIRECTORY;TRANSLATIONS_TARGET"
1021 "REQUIRED_PLUGINS;SERVER_MANAGER_XML;SOURCES;MODULES;UI_INTERFACES;UI_RESOURCES;UI_FILES;PYTHON_MODULES;MODULE_FILES;MODULE_ARGS;DOCUMENTATION_ADD_PATTERNS;DOCUMENTATION_DEPENDENCIES;INITIALIZERS;EXTRA_INCLUDES"
1024 if (_paraview_add_plugin_UNPARSED_ARGUMENTS)
1026 "Unparsed arguments for paraview_add_plugin: " 1027 "${_paraview_add_plugin_UNPARSED_ARGUMENTS}")
1030 if (NOT DEFINED _paraview_add_plugin_VERSION)
1032 "The `VERSION` argument is required.")
1035 if (NOT DEFINED _paraview_add_plugin_XML_DOCUMENTATION)
1036 set(_paraview_add_plugin_XML_DOCUMENTATION ON)
1038 if (DEFINED _paraview_add_plugin_DOCUMENTATION_DIR AND
1039 NOT _paraview_add_plugin_XML_DOCUMENTATION)
1041 "Specifying `DOCUMENTATION_DIR` and turning off `XML_DOCUMENTATION` " 1044 if (_paraview_build_DISABLE_XML_DOCUMENTATION)
1045 set(_paraview_add_plugin_XML_DOCUMENTATION OFF)
1048 if (NOT DEFINED _paraview_add_plugin_FORCE_STATIC)
1049 set(_paraview_add_plugin_FORCE_STATIC OFF)
1052 if (DEFINED _paraview_add_plugin_EXPORT)
1054 "The `paraview_add_plugin(EXPORT)` argument is ignored in favor of " 1055 "`paraview_plugin_build(INSTALL_EXPORT)`.")
1058 if (_paraview_add_plugin_MODULE_ARGS)
1059 if (NOT _paraview_add_plugin_MODULE_FILES OR
1060 NOT _paraview_add_plugin_MODULES)
1062 "The `MODULE_ARGS` argument requires `MODULE_FILES` and `MODULES` to be provided.")
1066 if (_paraview_add_plugin_UI_INTERFACES OR _paraview_add_plugin_UI_FILES OR _paraview_add_plugin_UI_RESOURCES)
1067 if (NOT PARAVIEW_USE_QT)
1068 message(FATAL_ERROR
"UI_INTERFACES, UI_FILES and UI_RESOURCES require ParaView to be built with Qt enabled.")
1072 if (DEFINED _paraview_build_INSTALL_EXPORT AND
1073 NOT DEFINED _paraview_add_plugin_MODULE_INSTALL_EXPORT)
1074 set(_paraview_add_plugin_MODULE_INSTALL_EXPORT
1078 if (_paraview_add_plugin_MODULE_FILES)
1079 if (NOT _paraview_add_plugin_MODULES)
1081 "The `MODULE_FILES` argument requires `MODULES` to be provided.")
1084 if (_paraview_build_ADD_INSTALL_RPATHS)
1086 list(INSERT CMAKE_INSTALL_RPATH 0
1089 list(INSERT CMAKE_INSTALL_RPATH 0
1094 set(_paraview_add_plugin_module_install_export_args)
1095 if (DEFINED _paraview_add_plugin_MODULE_INSTALL_EXPORT)
1096 list(APPEND _paraview_add_plugin_module_install_export_args
1097 INSTALL_EXPORT
"${_paraview_add_plugin_MODULE_INSTALL_EXPORT}")
1098 if (DEFINED _paraview_build_TARGET)
1099 set_property(GLOBAL APPEND
1101 "paraview_plugin_${_paraview_build_TARGET}_required_exports" "${_paraview_add_plugin_MODULE_INSTALL_EXPORT}")
1106 MODULE_FILES ${_paraview_add_plugin_MODULE_FILES}
1107 REQUEST_MODULES ${_paraview_add_plugin_MODULES}
1108 PROVIDES_MODULES plugin_modules
1109 REQUIRES_MODULES required_modules
1110 HIDE_MODULES_FROM_CACHE ON)
1112 if (required_modules)
1113 foreach (required_module IN LISTS required_modules)
1114 if (NOT TARGET
"${required_module}")
1116 "Failed to find the required module ${required_module}.")
1122 set(_paraview_plugin_subdir
"${_paraview_build_RUNTIME_DESTINATION}")
1124 set(_paraview_plugin_subdir
"${_paraview_build_LIBRARY_DESTINATION}")
1126 if (NOT _paraview_build_LIBRARY_SUBDIRECTORY STREQUAL
"")
1127 string(APPEND _paraview_plugin_subdir
"/${_paraview_build_LIBRARY_SUBDIRECTORY}")
1129 string(APPEND _paraview_plugin_subdir
"/${_paraview_build_plugin}")
1130 set(_paraview_plugin_CMAKE_RUNTIME_OUTPUT_DIRECTORY
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
1131 set(_paraview_plugin_CMAKE_LIBRARY_OUTPUT_DIRECTORY
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
1132 set(_paraview_plugin_CMAKE_ARCHIVE_OUTPUT_DIRECTORY
"${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
1133 set(_paraview_plugin_CMAKE_INSTALL_NAME_DIR
"${CMAKE_INSTALL_NAME_DIR}")
1134 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
"${CMAKE_BINARY_DIR}/${_paraview_plugin_subdir}")
1135 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
"${CMAKE_BINARY_DIR}/${_paraview_plugin_subdir}")
1136 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
"${CMAKE_BINARY_DIR}/${_paraview_plugin_subdir}")
1137 set(CMAKE_INSTALL_NAME_DIR
"@loader_path")
1140 MODULES ${plugin_modules}
1141 PACKAGE "${_paraview_build_plugin}" 1142 USE_FILE_SETS
"${_paraview_build_USE_FILE_SETS}" 1143 ${_paraview_add_plugin_module_install_export_args}
1144 INSTALL_HEADERS
"${_paraview_build_INSTALL_HEADERS}" 1145 TARGETS_COMPONENT
"${_paraview_build_PLUGINS_COMPONENT}" 1146 HEADERS_DESTINATION
"${_paraview_build_HEADERS_DESTINATION}/${_paraview_build_target_safe}" 1147 ARCHIVE_DESTINATION
"${_paraview_plugin_subdir}" 1148 LIBRARY_DESTINATION
"${_paraview_plugin_subdir}" 1149 RUNTIME_DESTINATION
"${_paraview_plugin_subdir}" 1150 CMAKE_DESTINATION
"${_paraview_build_CMAKE_DESTINATION}" 1151 ${_paraview_add_plugin_MODULE_ARGS}
1152 GENERATE_SPDX
"${_paraview_build_GENERATE_SPDX}" 1153 SPDX_DOCUMENT_NAMESPACE
"${_paraview_build_SPDX_DOCUMENT_NAMESPACE}" 1154 SPDX_DOWNLOAD_LOCATION
"${_paraview_build_SPDX_DOWNLOAD_LOCATION}")
1156 set_property(GLOBAL APPEND
1158 "paraview_plugin_${_paraview_add_plugin_MODULE_INSTALL_EXPORT}_modules" "${plugin_modules}")
1160 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
"${_paraview_plugin_CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
1161 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
"${_paraview_plugin_CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
1162 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
"${_paraview_plugin_CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
1163 set(CMAKE_INSTALL_NAME_DIR
"${_paraview_plugin_CMAKE_INSTALL_NAME_DIR}")
1164 unset(_paraview_plugin_CMAKE_RUNTIME_OUTPUT_DIRECTORY)
1165 unset(_paraview_plugin_CMAKE_LIBRARY_OUTPUT_DIRECTORY)
1166 unset(_paraview_plugin_CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
1167 unset(_paraview_plugin_CMAKE_INSTALL_NAME_DIR)
1170 # TODO: resource initialization for static builds 1172 if (_paraview_add_plugin_REQUIRED_ON_SERVER)
1173 set(_paraview_add_plugin_required_on_server
"true")
1175 set(_paraview_add_plugin_required_on_server
"false")
1178 if (_paraview_add_plugin_REQUIRED_ON_CLIENT)
1179 set(_paraview_add_plugin_required_on_client
"true")
1181 set(_paraview_add_plugin_required_on_client
"false")
1184 set(_paraview_add_plugin_export_args)
1185 set(_paraview_add_plugin_install_export_args)
1186 if (DEFINED _paraview_build_INSTALL_EXPORT)
1187 list(APPEND _paraview_add_plugin_export_args
1188 EXPORT "${_paraview_build_INSTALL_EXPORT}")
1189 list(APPEND _paraview_add_plugin_install_export_args
1190 INSTALL_EXPORT
"${_paraview_build_INSTALL_EXPORT}")
1193 set(_paraview_add_plugin_includes)
1194 set(_paraview_add_plugin_required_libraries)
1196 if (_paraview_add_plugin_EXTRA_INCLUDES)
1197 foreach (_include IN LISTS _paraview_add_plugin_EXTRA_INCLUDES)
1198 if ((${_include} MATCHES
"^\".*\"$") OR (${_include} MATCHES
"^<.*>$"))
1199 string(APPEND _paraview_add_plugin_includes
"#include ${_include}\n")
1201 string(APPEND _paraview_add_plugin_includes
"#include \"${_include}\"\n")
1206 set(_paraview_add_plugin_module_xmls)
1208 if (_paraview_add_plugin_MODULES)
1211 list(APPEND _paraview_add_plugin_required_libraries
1212 ${_paraview_add_plugin_MODULES})
1215 MODULES ${_paraview_add_plugin_MODULES}
1216 TARGET
"${_paraview_build_plugin}_client_server" 1217 ${_paraview_add_plugin_install_export_args})
1219 if (NOT DEFINED _paraview_add_plugin_TRANSLATIONS_DIRECTORY)
1220 set(_paraview_add_plugin_TRANSLATIONS_DIRECTORY
1221 "${CMAKE_CURRENT_BINARY_DIR}/Translations")
1223 set(_paraview_add_plugin_translation_args)
1224 if (_paraview_add_plugin_TRANSLATIONS_DIRECTORY AND _paraview_add_plugin_TRANSLATIONS_TARGET)
1225 list(APPEND _paraview_add_plugin_translation_args
1226 TRANSLATIONS_DIRECTORY
"${_paraview_add_plugin_TRANSLATIONS_DIRECTORY}")
1227 list(APPEND _paraview_add_plugin_translation_args
1228 TRANSLATIONS_TARGET
"${_paraview_add_plugin_TRANSLATIONS_TARGET}")
1232 MODULES ${_paraview_add_plugin_MODULES}
1233 TARGET
"${_paraview_build_plugin}_server_manager_modules" 1234 ${_paraview_add_plugin_install_export_args}
1235 XML_FILES _paraview_add_plugin_module_xmls
1236 ${_paraview_add_plugin_translation_args})
1238 list(APPEND _paraview_add_plugin_required_libraries
1239 "${_paraview_build_plugin}_client_server" 1240 "${_paraview_build_plugin}_server_manager_modules")
1243 set(_paraview_add_plugin_binary_resources
"")
1244 set(_paraview_add_plugin_binary_headers)
1245 if (_paraview_add_plugin_SERVER_MANAGER_XML)
1248 set(_paraview_add_plugin_xmls)
1249 foreach (_paraview_add_plugin_xml IN LISTS _paraview_add_plugin_SERVER_MANAGER_XML)
1250 if (NOT IS_ABSOLUTE
"${_paraview_add_plugin_xml}")
1251 set(_paraview_add_plugin_xml
"${CMAKE_CURRENT_SOURCE_DIR}/${_paraview_add_plugin_xml}")
1254 list(APPEND _paraview_add_plugin_xmls
1255 "${_paraview_add_plugin_xml}")
1259 TARGET
"${_paraview_build_plugin}_server_manager" 1260 ${_paraview_add_plugin_install_export_args}
1261 FILES ${_paraview_add_plugin_xmls})
1262 list(APPEND _paraview_add_plugin_required_libraries
1263 "${_paraview_build_plugin}_server_manager")
1266 if ((_paraview_add_plugin_module_xmls OR _paraview_add_plugin_xmls) AND
1267 PARAVIEW_USE_QT AND _paraview_add_plugin_XML_DOCUMENTATION)
1269 if (PARAVIEW_QT_MAJOR_VERSION VERSION_GREATER
"5")
1270 # see https://gitlab.kitware.com/paraview/paraview/-/issues/19742 1271 if (NOT DEFINED ENV{CI})
1272 message(AUTHOR_WARNING
"Building the plugin documentation with Qt6 is not supported")
1276 set(_paraview_build_plugin_docdir
1277 "${CMAKE_CURRENT_BINARY_DIR}/paraview_help")
1280 TARGET
"${_paraview_build_plugin}_doc" 1281 OUTPUT_DIR
"${_paraview_build_plugin_docdir}" 1282 XMLS ${_paraview_add_plugin_module_xmls}
1283 ${_paraview_add_plugin_xmls})
1285 set(_paraview_build_plugin_doc_source_args)
1286 if (DEFINED _paraview_add_plugin_DOCUMENTATION_DIR)
1287 list(APPEND _paraview_build_plugin_doc_source_args
1288 SOURCE_DIR
"${_paraview_add_plugin_DOCUMENTATION_DIR}")
1292 NAME "${_paraview_build_plugin}" 1293 OUTPUT_PATH _paraview_build_plugin_qch_path
1294 OUTPUT_DIR
"${_paraview_build_plugin_docdir}" 1295 TARGET
"${_paraview_build_plugin}_qch" 1296 ${_paraview_build_plugin_doc_source_args}
1297 TABLE_OF_CONTENTS
"${_paraview_add_plugin_DOCUMENTATION_TOC}" 1298 DEPENDS
"${_paraview_build_plugin}_doc" 1299 "${_paraview_add_plugin_DOCUMENTATION_DEPENDENCIES}" 1300 PATTERNS
"*.html" "*.css" "*.png" "*.jpg" "*.js" 1301 ${_paraview_add_plugin_DOCUMENTATION_ADD_PATTERNS})
1303 set(_paraview_add_plugin_depends_args)
1304 if (CMAKE_VERSION VERSION_GREATER_EQUAL
"3.27")
1305 list(APPEND _paraview_add_plugin_depends_args
1306 DEPENDS_EXPLICIT_ONLY)
1309 list(APPEND _paraview_add_plugin_extra_include_dirs
1310 "${CMAKE_CURRENT_BINARY_DIR}")
1311 set(_paraview_add_plugin_qch_output
1312 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_build_plugin}_qch.h")
1313 list(APPEND _paraview_add_plugin_binary_headers
1314 "${_paraview_add_plugin_qch_output}")
1316 OUTPUT
"${_paraview_add_plugin_qch_output}" 1317 COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR}
1318 "$<TARGET_FILE:ParaView::ProcessXML>" 1320 "${_paraview_add_plugin_qch_output}" 1324 "${_paraview_build_plugin_qch_path}
" 1325 DEPENDS "${_paraview_build_plugin_qch_path}
" 1326 "${_paraview_build_plugin}_qch
" 1327 "$<TARGET_FILE:ParaView::ProcessXML>
" 1328 COMMENT "Generating header
for ${_paraview_build_plugin}
documentation" 1329 ${_paraview_add_plugin_depends_args}) 1330 set_property(SOURCE "${_paraview_add_plugin_qch_output}
" 1334 string(APPEND _paraview_add_plugin_includes 1335 "#include \
"${_paraview_build_plugin}_qch.h\"\n")
1336 string(APPEND _paraview_add_plugin_binary_resources
1338 const char *text = ${_paraview_build_plugin}_qch(); 1339 resources.emplace_back(text); 1345 set(_paraview_add_plugin_eula_sources)
1346 if (_paraview_add_plugin_EULA)
1348 INPUT
"${_paraview_add_plugin_EULA}" 1349 NAME "${_paraview_build_plugin}_EULA" 1350 HEADER_OUTPUT _paraview_add_plugin_eula_header
1351 SOURCE_OUTPUT _paraview_add_plugin_eula_source)
1352 list(APPEND _paraview_add_plugin_eula_sources
1353 "${_paraview_add_plugin_eula_header}" 1354 "${_paraview_add_plugin_eula_source}")
1358 set(_paraview_add_plugin_ui_sources)
1359 if (_paraview_add_plugin_UI_INTERFACES)
1361 set(CMAKE_AUTOMOC 1)
1362 set(_paraview_add_plugin_push_back_interfaces
1363 "#define PARAVIEW_ADD_INTERFACES(arg) \\\n")
1364 set(_paraview_add_plugin_include_interfaces
"")
1366 foreach (_paraview_add_plugin_ui_interface IN LISTS _paraview_add_plugin_UI_INTERFACES)
1367 string(APPEND _paraview_add_plugin_push_back_interfaces
1368 " (arg).push_back(new ${_paraview_add_plugin_ui_interface}(this)); \\\n")
1369 string(APPEND _paraview_add_plugin_include_interfaces
1370 "#include \"${_paraview_add_plugin_ui_interface}.h\"\n")
1372 list(APPEND _paraview_add_plugin_required_libraries
1373 ParaView::pqComponents)
1377 if (_paraview_add_plugin_INITIALIZERS)
1379 set(_paraview_add_plugin_invoke_initializers)
1381 foreach (_paraview_add_plugin_initializer IN LISTS _paraview_add_plugin_INITIALIZERS)
1382 string(APPEND _paraview_add_plugin_invoke_initializers
1383 " ${_paraview_add_plugin_initializer}();\n")
1387 set(_paraview_add_plugin_with_resources 0)
1388 set(_paraview_add_plugin_resources_init)
1389 if (_paraview_add_plugin_UI_RESOURCES)
1390 set(_paraview_add_plugin_with_resources 1)
1391 set(CMAKE_AUTORCC 1)
1393 foreach (_paraview_add_plugin_ui_resource IN LISTS _paraview_add_plugin_UI_RESOURCES)
1394 get_filename_component(_paraview_add_plugin_ui_resource_base
"${_paraview_add_plugin_ui_resource}" NAME_WE)
1395 string(APPEND _paraview_add_plugin_resources_init
1396 " Q_INIT_RESOURCE(${_paraview_add_plugin_ui_resource_base});\n")
1399 list(APPEND _paraview_add_plugin_ui_sources
1400 ${_paraview_add_plugin_UI_RESOURCES})
1403 set(_paraview_add_plugin_qt_extra_components)
1404 if (_paraview_add_plugin_UI_FILES)
1406 set(CMAKE_AUTOUIC 1)
1407 list(APPEND _paraview_add_plugin_qt_extra_components
1409 list(APPEND _paraview_add_plugin_required_libraries
1410 "Qt${PARAVIEW_QT_MAJOR_VERSION}::Widgets")
1411 list(APPEND _paraview_add_plugin_ui_sources
1412 ${_paraview_add_plugin_UI_FILES})
1416 include(
"${_ParaViewPlugin_cmake_dir}/paraview-find-package-helpers.cmake" OPTIONAL)
1417 find_package(
"Qt${PARAVIEW_QT_MAJOR_VERSION}" QUIET REQUIRED COMPONENTS Core ${_paraview_add_plugin_qt_extra_components})
1418 list(APPEND _paraview_add_plugin_required_libraries
1419 "Qt${PARAVIEW_QT_MAJOR_VERSION}::Core")
1421 list(APPEND _paraview_add_plugin_required_libraries
1425 # CMake 3.13 started using Qt5's version variables to detect what version 1426 # of Qt's tools to run for automoc, autouic, and autorcc. However, they are 1427 # looked up using the target's directory scope, but these are here in a 1428 # local scope and unset when AutoGen gets around to asking about the 1429 # variables at generate time. 1431 # Fix for 3.13.0–3.13.3. Does not work if `paraview_add_plugin` is called 1432 # from another function. 1433 set(
"Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MAJOR" "${Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MAJOR}" PARENT_SCOPE)
1434 set(
"Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MINOR" "${Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MINOR}" PARENT_SCOPE)
1436 set_property(DIRECTORY
"${CMAKE_CURRENT_SOURCE_DIR}" 1438 "Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MAJOR" "${Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MAJOR}")
1439 set_property(DIRECTORY
"${CMAKE_CURRENT_SOURCE_DIR}" 1441 "Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MINOR" "${Qt${PARAVIEW_QT_MAJOR_VERSION}Core_VERSION_MAJOR}")
1445 set(_paraview_add_plugin_python_sources)
1446 set(_paraview_add_plugin_python_includes)
1447 set(_paraview_add_plugin_python_modules)
1448 set(_paraview_add_plugin_python_module_sources)
1449 set(_paraview_add_plugin_python_package_flags)
1450 if (_paraview_add_plugin_PYTHON_MODULES)
1452 foreach (_paraview_add_plugin_python_module IN LISTS _paraview_add_plugin_PYTHON_MODULES)
1453 set(_paraview_add_plugin_python_path
1454 "${CMAKE_CURRENT_SOURCE_DIR}/${_paraview_add_plugin_python_module}")
1455 get_filename_component(_paraview_add_plugin_python_package
"${_paraview_add_plugin_python_module}" PATH)
1456 get_filename_component(_paraview_add_plugin_python_name
"${_paraview_add_plugin_python_module}" NAME_WE)
1457 if (_paraview_add_plugin_python_package)
1458 set(_paraview_add_plugin_python_full_name
1459 "${_paraview_add_plugin_python_package}.${_paraview_add_plugin_python_name}")
1461 set(_paraview_add_plugin_python_full_name
1462 "${_paraview_add_plugin_python_name}")
1464 string(REPLACE
"." "_" _paraview_add_plugin_python_module_mangled
"${_paraview_add_plugin_python_full_name}")
1465 set(_paraview_add_plugin_python_is_package 0)
1466 set(_paraview_add_plugin_python_import
1467 "${_paraview_add_plugin_python_full_name}")
1468 if (_paraview_add_plugin_python_name STREQUAL
"__init__")
1469 set(_paraview_add_plugin_python_is_package 1)
1470 set(_paraview_add_plugin_python_import
1471 "${_paraview_add_plugin_python_package}")
1473 set(_paraview_add_plugin_python_header_name
1474 "WrappedPython_${_paraview_build_plugin}_${_paraview_add_plugin_python_module_mangled}.h")
1475 set(_paraview_add_plugin_python_header
1476 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_add_plugin_python_header_name}")
1478 set(_paraview_add_plugin_python_depends_args)
1479 if (CMAKE_VERSION VERSION_GREATER_EQUAL
"3.27")
1480 list(APPEND _paraview_add_plugin_python_depends_args
1481 DEPENDS_EXPLICIT_ONLY)
1485 OUTPUT
"${_paraview_add_plugin_python_header}" 1486 COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR}
1487 "$<TARGET_FILE:ParaView::ProcessXML>" 1488 "${_paraview_add_plugin_python_header}" 1489 "module_${_paraview_add_plugin_python_module_mangled}_" 1492 "${_paraview_add_plugin_python_path}" 1493 DEPENDS
"${_paraview_add_plugin_python_path}" 1494 "$<TARGET_FILE:ParaView::ProcessXML>" 1495 COMMENT
"Convert Python module ${_paraview_add_plugin_python_module_name} for ${_paraview_build_plugin}" 1496 ${_paraview_add_plugin_python_depends_args})
1498 list(APPEND _paraview_add_plugin_python_sources
1499 "${_paraview_add_plugin_python_header}")
1500 string(APPEND _paraview_add_plugin_python_includes
1501 "#include \"${_paraview_add_plugin_python_header_name}\"\n")
1502 string(APPEND _paraview_add_plugin_python_modules
1503 " \"${_paraview_add_plugin_python_import}\",\n")
1504 string(APPEND _paraview_add_plugin_python_module_sources
1505 " module_${_paraview_add_plugin_python_module_mangled}_${_paraview_add_plugin_python_name}_source(),\n")
1506 string(APPEND _paraview_add_plugin_python_package_flags
1507 " ${_paraview_add_plugin_python_is_package},\n")
1510 # Add terminators to the list. 1511 string(APPEND _paraview_add_plugin_python_modules
1513 string(APPEND _paraview_add_plugin_python_module_sources
1515 string(APPEND _paraview_add_plugin_python_package_flags
1519 set(_paraview_add_plugin_header
1520 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_build_plugin}Plugin.h")
1521 set(_paraview_add_plugin_source
1522 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_build_plugin}Plugin.cxx")
1524 get_property(_paraview_add_plugin_description GLOBAL
1525 PROPERTY
"_paraview_plugin_${_paraview_build_plugin}_description")
1527 set(_paraview_build_plugin_type MODULE)
1530 set(_paraview_build_plugin_type STATIC)
1535 "${_paraview_plugin_source_dir}/paraview_plugin.h.in" 1536 "${_paraview_add_plugin_header}")
1538 "${_paraview_plugin_source_dir}/paraview_plugin.cxx.in" 1539 "${_paraview_add_plugin_source}")
1542 # On Windows, we want `MODULE` libraries to go to the runtime directory, 1543 # but CMake always uses `CMAKE_LIBRARY_OUTPUT_DIRECTORY`. 1544 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
1546 if (NOT _paraview_build_LIBRARY_SUBDIRECTORY STREQUAL
"")
1547 string(APPEND CMAKE_LIBRARY_OUTPUT_DIRECTORY
"/${_paraview_build_LIBRARY_SUBDIRECTORY}")
1549 string(APPEND CMAKE_LIBRARY_OUTPUT_DIRECTORY
"/${_paraview_build_plugin}")
1551 # Place static plugins in the same place they would be if they were shared. 1552 if (NOT _paraview_build_LIBRARY_SUBDIRECTORY STREQUAL
"")
1553 string(APPEND CMAKE_ARCHIVE_OUTPUT_DIRECTORY
"/${_paraview_build_LIBRARY_SUBDIRECTORY}")
1555 string(APPEND CMAKE_ARCHIVE_OUTPUT_DIRECTORY
"/${_paraview_build_plugin}")
1557 add_library(
"${_paraview_build_plugin}" "${_paraview_build_plugin_type}")
1558 target_sources(
"${_paraview_build_plugin}" 1560 ${_paraview_add_plugin_source}
1561 ${_paraview_add_plugin_eula_sources}
1562 ${_paraview_add_plugin_ui_sources}
1563 ${_paraview_add_plugin_python_sources}
1564 ${_paraview_add_plugin_SOURCES})
1565 # Forward the file
set option internally.
1566 set(_vtk_build_USE_FILE_SETS
"${_paraview_build_USE_FILE_SETS}")
1567 _vtk_module_add_file_set(
"${_paraview_build_plugin}" 1568 NAME paraview_plugin_headers
1570 BASE_DIRS
"${CMAKE_CURRENT_BINARY_DIR}" 1571 FILES ${_paraview_add_plugin_header}
1572 ${_paraview_add_plugin_binary_headers})
1574 target_compile_definitions(
"${_paraview_build_plugin}" 1578 target_link_libraries(
"${_paraview_build_plugin}" 1580 ParaView::RemotingCore
1581 ${_paraview_add_plugin_required_libraries})
1582 target_include_directories(
"${_paraview_build_plugin}" 1584 "${CMAKE_CURRENT_SOURCE_DIR}" 1585 ${_paraview_add_plugin_extra_include_dirs})
1586 set_property(TARGET
"${_paraview_build_plugin}" 1590 set(_paraview_add_plugin_destination
1591 "${_paraview_build_plugin_destination}/${_paraview_build_plugin}")
1593 TARGETS
"${_paraview_build_plugin}" 1594 ${_paraview_add_plugin_export_args}
1595 COMPONENT
"${_paraview_build_PLUGINS_COMPONENT}" 1596 ARCHIVE DESTINATION
"${_paraview_add_plugin_destination}" 1597 LIBRARY DESTINATION
"${_paraview_add_plugin_destination}")
1601 ## Plugin interfaces 1603 ParaView plugins may satisfy a number of interfaces. These functions all take a
1604 `INTERFACES` argument which takes the name of a variable to
set with the name
1605 of the
interface generated. This variable's should be passed to
1606 `paraview_add_plugin`'s `UI_INTERFACES` argument.
1612 TODO: What is a
property widget?
1616 KIND <WIDGET|GROUP_WIDGET|WIDGET_DECORATOR>
1619 INTERFACES <variable>
1623 * `KIND`: The kind of widget represented.
1624 * `
TYPE`: The name of the
property type.
1625 * `CLASS_NAME`: The name of the
property widget
class.
1626 * `INTERFACES`: The name of the generated interface.
1627 * `SOURCES`: The
source files generated by the interface.
1630 cmake_parse_arguments(_paraview_property_widget
1632 "KIND;TYPE;CLASS_NAME;INTERFACES;SOURCES" 1636 if (_paraview_property_widget_UNPARSED_ARGUMENTS)
1638 "Unparsed arguments for paraview_plugin_add_property_widget: " 1639 "${_paraview_property_widget_UNPARSED_ARGUMENTS}")
1642 set(_paraview_property_widget_kind_widget 0)
1643 set(_paraview_property_widget_kind_group_widget 0)
1644 set(_paraview_property_widget_kind_widget_decorator 0)
1645 if (_paraview_property_widget_KIND STREQUAL
"WIDGET")
1646 set(_paraview_property_widget_kind_widget 1)
1647 elseif (_paraview_property_widget_KIND STREQUAL
"GROUP_WIDGET")
1648 set(_paraview_property_widget_kind_group_widget 1)
1649 elseif (_paraview_property_widget_KIND STREQUAL
"WIDGET_DECORATOR")
1650 set(_paraview_property_widget_kind_widget_decorator 1)
1653 "The `KIND` argument must be one of `WIDGET`, `GROUP_WIDGET`, or " 1654 "`WIDGET_DECORATOR`.")
1657 if (NOT DEFINED _paraview_property_widget_TYPE)
1659 "The `TYPE` argument is required.")
1662 if (NOT DEFINED _paraview_property_widget_CLASS_NAME)
1664 "The `CLASS_NAME` argument is required.")
1667 if (NOT DEFINED _paraview_property_widget_INTERFACES)
1669 "The `INTERFACES` argument is required.")
1672 if (NOT DEFINED _paraview_property_widget_SOURCES)
1674 "The `SOURCES` argument is required.")
1678 "${_ParaViewPlugin_cmake_dir}/pqPropertyWidgetInterface.h.in" 1679 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_property_widget_CLASS_NAME}PWIImplementation.h" 1682 "${_ParaViewPlugin_cmake_dir}/pqPropertyWidgetInterface.cxx.in" 1683 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_property_widget_CLASS_NAME}PWIImplementation.cxx" 1686 set(
"${_paraview_property_widget_INTERFACES}" 1687 "${_paraview_property_widget_CLASS_NAME}PWIImplementation" 1690 set(
"${_paraview_property_widget_SOURCES}" 1691 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_property_widget_CLASS_NAME}PWIImplementation.cxx" 1692 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_property_widget_CLASS_NAME}PWIImplementation.h" 1699 TODO: What is a dock window?
1704 [DOCK_AREA <Right|Left|Top|Bottom>]
1705 INTERFACES <variable>
1709 * `CLASS_NAME`: The name of the dock window
class.
1710 * `DOCK_AREA`: (Default `Left`) Where to dock the window within the
1712 * `INTERFACES`: The name of the generated interface.
1713 * `SOURCES`: The
source files generated by the interface.
1716 cmake_parse_arguments(_paraview_dock_window
1718 "DOCK_AREA;CLASS_NAME;INTERFACES;SOURCES" 1722 if (_paraview_dock_window_UNPARSED_ARGUMENTS)
1724 "Unparsed arguments for paraview_plugin_add_dock_window: " 1725 "${_paraview_dock_window_UNPARSED_ARGUMENTS}")
1728 if (NOT DEFINED _paraview_dock_window_CLASS_NAME)
1730 "The `CLASS_NAME` argument is required.")
1733 if (NOT DEFINED _paraview_dock_window_INTERFACES)
1735 "The `INTERFACES` argument is required.")
1738 if (NOT DEFINED _paraview_dock_window_SOURCES)
1740 "The `SOURCES` argument is required.")
1743 if (NOT DEFINED _paraview_dock_window_DOCK_AREA)
1744 set(_paraview_dock_window_DOCK_AREA
"Left")
1747 if (NOT _paraview_dock_window_DOCK_AREA STREQUAL
"Left" AND
1748 NOT _paraview_dock_window_DOCK_AREA STREQUAL
"Right" AND
1749 NOT _paraview_dock_window_DOCK_AREA STREQUAL
"Top" AND
1750 NOT _paraview_dock_window_DOCK_AREA STREQUAL
"Bottom")
1752 "`DOCK_AREA` must be one of `Left`, `Right`, `Top`, or `Bottom`. Got " 1753 "`${_paraview_dock_window_DOCK_AREA}`.")
1757 "${_ParaViewPlugin_cmake_dir}/pqDockWindowImplementation.h.in" 1758 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_dock_window_CLASS_NAME}Implementation.h" 1761 "${_ParaViewPlugin_cmake_dir}/pqDockWindowImplementation.cxx.in" 1762 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_dock_window_CLASS_NAME}Implementation.cxx" 1765 set(
"${_paraview_dock_window_INTERFACES}" 1766 "${_paraview_dock_window_CLASS_NAME}Implementation" 1769 set(
"${_paraview_dock_window_SOURCES}" 1770 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_dock_window_CLASS_NAME}Implementation.cxx" 1771 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_dock_window_CLASS_NAME}Implementation.h" 1778 TODO: What is an action group?
1784 INTERFACES <variable>
1788 * `CLASS_NAME`: The name of the action group
class.
1789 * `GROUP_NAME`: The name of the action group.
1790 * `INTERFACES`: The name of the generated interface.
1791 * `SOURCES`: The
source files generated by the interface.
1794 cmake_parse_arguments(_paraview_action_group
1796 "CLASS_NAME;GROUP_NAME;INTERFACES;SOURCES" 1800 if (_paraview_action_group_UNPARSED_ARGUMENTS)
1802 "Unparsed arguments for paraview_plugin_add_action_group: " 1803 "${_paraview_action_group_UNPARSED_ARGUMENTS}")
1806 if (NOT DEFINED _paraview_action_group_CLASS_NAME)
1808 "The `CLASS_NAME` argument is required.")
1811 if (NOT DEFINED _paraview_action_group_GROUP_NAME)
1813 "The `GROUP_NAME` argument is required.")
1816 if (NOT DEFINED _paraview_action_group_INTERFACES)
1818 "The `INTERFACES` argument is required.")
1821 if (NOT DEFINED _paraview_action_group_SOURCES)
1823 "The `SOURCES` argument is required.")
1827 "${_ParaViewPlugin_cmake_dir}/pqActionGroupImplementation.h.in" 1828 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_action_group_CLASS_NAME}Implementation.h" 1831 "${_ParaViewPlugin_cmake_dir}/pqActionGroupImplementation.cxx.in" 1832 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_action_group_CLASS_NAME}Implementation.cxx" 1835 set(
"${_paraview_action_group_INTERFACES}" 1836 "${_paraview_action_group_CLASS_NAME}Implementation" 1839 set(
"${_paraview_action_group_SOURCES}" 1840 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_action_group_CLASS_NAME}Implementation.cxx" 1841 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_action_group_CLASS_NAME}Implementation.h" 1848 TODO: What is a toolbar?
1853 INTERFACES <variable>
1857 * `CLASS_NAME`: The name of the toolbar
class.
1858 * `INTERFACES`: The name of the generated interface.
1859 * `SOURCES`: The
source files generated by the interface.
1862 cmake_parse_arguments(_paraview_toolbar
1864 "CLASS_NAME;INTERFACES;SOURCES" 1868 if (_paraview_toolbar_UNPARSED_ARGUMENTS)
1870 "Unparsed arguments for paraview_plugin_add_toolbar: " 1871 "${_paraview_toolbar_UNPARSED_ARGUMENTS}")
1874 if (NOT DEFINED _paraview_toolbar_CLASS_NAME)
1876 "The `CLASS_NAME` argument is required.")
1879 if (NOT DEFINED _paraview_toolbar_INTERFACES)
1881 "The `INTERFACES` argument is required.")
1884 if (NOT DEFINED _paraview_toolbar_SOURCES)
1886 "The `SOURCES` argument is required.")
1890 "${_ParaViewPlugin_cmake_dir}/pqToolBarImplementation.h.in" 1891 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_toolbar_CLASS_NAME}Implementation.h" 1894 "${_ParaViewPlugin_cmake_dir}/pqToolBarImplementation.cxx.in" 1895 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_toolbar_CLASS_NAME}Implementation.cxx" 1898 set(
"${_paraview_toolbar_INTERFACES}" 1899 "${_paraview_toolbar_CLASS_NAME}Implementation" 1902 set(
"${_paraview_toolbar_SOURCES}" 1903 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_toolbar_CLASS_NAME}Implementation.cxx" 1904 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_toolbar_CLASS_NAME}Implementation.h" 1911 TODO: What is an
auto start?
1916 [STARTUP <function>]
1917 [SHUTDOWN <function>]
1918 INTERFACES <variable>
1922 * `CLASS_NAME`: The name of the
auto start
class.
1923 * `STARTUP`: (Defaults to `startup`) The name of the method to call
on 1925 * `SHUTDOWN`: (Defaults to `shutdown`) The name of the method to call
on 1927 * `INTERFACES`: The name of the generated interface.
1928 * `SOURCES`: The
source files generated by the interface.
1931 cmake_parse_arguments(_paraview_auto_start
1933 "CLASS_NAME;INTERFACES;SOURCES;STARTUP;SHUTDOWN" 1937 if (_paraview_auto_start_UNPARSED_ARGUMENTS)
1939 "Unparsed arguments for paraview_plugin_add_auto_start: " 1940 "${_paraview_auto_start_UNPARSED_ARGUMENTS}")
1943 if (NOT DEFINED _paraview_auto_start_CLASS_NAME)
1945 "The `CLASS_NAME` argument is required.")
1948 if (NOT DEFINED _paraview_auto_start_INTERFACES)
1950 "The `INTERFACES` argument is required.")
1953 if (NOT DEFINED _paraview_auto_start_SOURCES)
1955 "The `SOURCES` argument is required.")
1958 if (NOT DEFINED _paraview_auto_start_STARTUP)
1959 set(_paraview_auto_start_STARTUP
"startup")
1962 if (NOT DEFINED _paraview_auto_start_SHUTDOWN)
1963 set(_paraview_auto_start_SHUTDOWN
"shutdown")
1967 "${_ParaViewPlugin_cmake_dir}/pqAutoStartImplementation.h.in" 1968 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_auto_start_CLASS_NAME}Implementation.h" 1971 "${_ParaViewPlugin_cmake_dir}/pqAutoStartImplementation.cxx.in" 1972 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_auto_start_CLASS_NAME}Implementation.cxx" 1975 set(
"${_paraview_auto_start_INTERFACES}" 1976 "${_paraview_auto_start_CLASS_NAME}Implementation" 1979 set(
"${_paraview_auto_start_SOURCES}" 1980 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_auto_start_CLASS_NAME}Implementation.cxx" 1981 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_auto_start_CLASS_NAME}Implementation.h" 1988 The filesystem
location of dynamically-loaded plugin.
1994 INTERFACES <variable>
1998 * `CLASS_NAME`: The name of the
location class.
1999 * `STORE`: (Defaults to `StoreLocation`) The name of the method to call
on 2000 startup, passing in the plugin
location (
const char*).
2001 * `INTERFACES`: The name of the generated interface.
2002 * `SOURCES`: The
source files generated by the interface.
2005 cmake_parse_arguments(_paraview_location
2007 "CLASS_NAME;INTERFACES;SOURCES;STORE" 2011 if (_paraview_location_UNPARSED_ARGUMENTS)
2013 "Unparsed arguments for paraview_plugin_add_location: " 2014 "${_paraview_location_UNPARSED_ARGUMENTS}")
2017 if (NOT DEFINED _paraview_location_CLASS_NAME)
2019 "The `CLASS_NAME` argument is required.")
2022 if (NOT DEFINED _paraview_location_INTERFACES)
2024 "The `INTERFACES` argument is required.")
2027 if (NOT DEFINED _paraview_location_SOURCES)
2029 "The `SOURCES` argument is required.")
2032 if (NOT DEFINED _paraview_location_STORE)
2033 set(_paraview_location_STORE
"StoreLocation")
2037 "${_ParaViewPlugin_cmake_dir}/pqPluginLocationImplementation.h.in" 2038 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_location_CLASS_NAME}Implementation.h" 2041 "${_ParaViewPlugin_cmake_dir}/pqPluginLocationImplementation.cxx.in" 2042 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_location_CLASS_NAME}Implementation.cxx" 2045 set(
"${_paraview_location_INTERFACES}" 2046 "${_paraview_location_CLASS_NAME}Implementation" 2049 set(
"${_paraview_location_SOURCES}" 2050 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_location_CLASS_NAME}Implementation.cxx" 2051 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_location_CLASS_NAME}Implementation.h" 2056 ### Tree layout strategy 2058 TODO: What is a tree layout strategy?
2062 STRATEGY_TYPE <type>
2063 STRATEGY_LABEL <label>
2064 INTERFACES <variable>
2068 * `STRATEGY_TYPE`: The name of the tree layout strategy
class.
2069 * `STRATEGY_LABEL`: The label to use
for the strategy.
2070 * `INTERFACES`: The name of the generated interface.
2071 * `SOURCES`: The
source files generated by the interface.
2074 cmake_parse_arguments(_paraview_tree_layout_strategy
2076 "INTERFACES;SOURCES;STRATEGY_TYPE;STRATEGY_LABEL" 2080 if (_paraview_tree_layout_strategy_UNPARSED_ARGUMENTS)
2082 "Unparsed arguments for paraview_plugin_add_tree_layout_strategy: " 2083 "${_paraview_tree_layout_strategy_UNPARSED_ARGUMENTS}")
2086 if (NOT DEFINED _paraview_tree_layout_strategy_STRATEGY_TYPE)
2088 "The `STRATEGY_TYPE` argument is required.")
2091 if (NOT DEFINED _paraview_tree_layout_strategy_STRATEGY_LABEL)
2093 "The `STRATEGY_LABEL` argument is required.")
2096 if (NOT DEFINED _paraview_tree_layout_strategy_INTERFACES)
2098 "The `INTERFACES` argument is required.")
2101 if (NOT DEFINED _paraview_tree_layout_strategy_SOURCES)
2103 "The `SOURCES` argument is required.")
2107 "${_ParaViewPlugin_cmake_dir}/pqTreeLayoutStrategyImplementation.h.in" 2108 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_tree_layout_strategy_STRATEGY_TYPE}Implementation.h" 2111 "${_ParaViewPlugin_cmake_dir}/pqTreeLayoutStrategyImplementation.cxx.in" 2112 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_tree_layout_strategy_STRATEGY_TYPE}Implementation.cxx" 2115 set(
"${_paraview_tree_layout_strategy_INTERFACES}" 2116 "${_paraview_tree_layout_strategy_STRATEGY_TYPE}Implementation" 2119 set(
"${_paraview_tree_layout_strategy_SOURCES}" 2120 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_tree_layout_strategy_STRATEGY_TYPE}Implementation.cxx" 2121 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_tree_layout_strategy_STRATEGY_TYPE}Implementation.h" 2128 TODO: What is a proxy?
2133 INTERFACES <variable>
2136 [CLASS_NAME <class>]
2138 <XML_NAME|XML_NAME_REGEX> <name>]...)
2141 * `
NAME`: The name of the proxy.
2142 * `INTERFACES`: The name of the generated interface.
2143 * `SOURCES`: The
source files generated by the interface.
2145 At least one `PROXY_TYPE` must be specified. Each proxy
type must be given an
2146 `XML_GROUP` and either an `XML_NAME` or `XML_NAME_REGEX`. If `CLASS_NAME` is
2147 not given, the `PROXY_TYPE` name is used instead.
2150 cmake_parse_arguments(_paraview_proxy
2152 "INTERFACES;SOURCES;NAME" 2156 if (NOT DEFINED _paraview_proxy_INTERFACES)
2158 "The `INTERFACES` argument is required.")
2161 if (NOT DEFINED _paraview_proxy_SOURCES)
2163 "The `SOURCES` argument is required.")
2166 if (NOT DEFINED _paraview_proxy_NAME)
2168 "The `NAME` argument is required.")
2171 set(_paraview_proxy_parse
"")
2172 set(_paraview_proxy_type)
2173 set(_paraview_proxy_types)
2174 foreach (_paraview_proxy_arg IN LISTS _paraview_proxy_UNPARSED_ARGUMENTS)
2175 if (_paraview_proxy_parse STREQUAL
"")
2176 set(_paraview_proxy_parse
"${_paraview_proxy_arg}")
2177 elseif (_paraview_proxy_parse STREQUAL
"PROXY_TYPE")
2178 set(_paraview_proxy_type
"${_paraview_proxy_arg}")
2179 list(APPEND _paraview_proxy_types
"${_paraview_proxy_type}")
2180 set(_paraview_proxy_parse
"")
2181 elseif (_paraview_proxy_parse STREQUAL
"CLASS_NAME")
2182 if (NOT _paraview_proxy_type)
2184 "Missing `PROXY_TYPE` for `CLASS_NAME`")
2186 if (DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_class_name")
2188 "Duplicate `CLASS_NAME` for `${_paraview_proxy_type}`")
2190 set(
"_paraview_proxy_type_${_paraview_proxy_type}_class_name" 2191 "${_paraview_proxy_arg}")
2192 set(_paraview_proxy_parse
"")
2193 elseif (_paraview_proxy_parse STREQUAL
"XML_GROUP")
2194 if (NOT _paraview_proxy_type)
2196 "Missing `PROXY_TYPE` for `XML_GROUP`")
2198 if (DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_group")
2200 "Duplicate `XML_GROUP` for `${_paraview_proxy_type}`")
2202 set(
"_paraview_proxy_type_${_paraview_proxy_type}_xml_group" 2203 "${_paraview_proxy_arg}")
2204 set(_paraview_proxy_parse
"")
2205 elseif (_paraview_proxy_parse STREQUAL
"XML_NAME")
2206 if (NOT _paraview_proxy_type)
2208 "Missing `PROXY_TYPE` for `XML_NAME`")
2210 if (DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name" OR
2211 DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name_regex")
2213 "Duplicate `XML_NAME` or `XML_NAME_REGEX` for `${_paraview_proxy_type}`")
2215 set(
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name" 2216 "${_paraview_proxy_arg}")
2217 set(_paraview_proxy_parse
"")
2218 elseif (_paraview_proxy_parse STREQUAL
"XML_NAME_REGEX")
2219 if (NOT _paraview_proxy_type)
2221 "Missing `PROXY_TYPE` for `XML_NAME_REGEX`")
2223 if (DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name" OR
2224 DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name_regex")
2226 "Duplicate `XML_NAME` or `XML_NAME_REGEX` for `${_paraview_proxy_type}`")
2228 set(
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name_regex" 2229 "${_paraview_proxy_arg}")
2230 set(_paraview_proxy_parse
"")
2233 "Unknown argument `${_paraview_proxy_parse}`")
2237 if (_paraview_proxy_parse)
2239 "Missing argument for `${_paraview_proxy_parse}`")
2242 if (NOT _paraview_proxy_types)
2244 "No `PROXY_TYPE` arguments given")
2247 set(_paraview_proxy_includes)
2248 set(_paraview_proxy_body)
2249 foreach (_paraview_proxy_type IN LISTS _paraview_proxy_types)
2250 if (NOT DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_group")
2252 "Missing `XML_GROUP` for `${_paraview_proxy_type}`")
2254 if (NOT DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name" AND
2255 NOT DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name_regex")
2257 "Missing `XML_NAME` or `XML_NAME_REGEX` for `${_paraview_proxy_type}`")
2259 if (DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_class_name")
2260 set(_paraview_proxy_class
2261 "${_paraview_proxy_type_${_paraview_proxy_type}_class_name}")
2263 set(_paraview_proxy_class
2264 "${_paraview_proxy_type}")
2267 set(_paraview_proxy_group
"${_paraview_proxy_type_${_paraview_proxy_type}_xml_group}")
2268 if (DEFINED
"_paraview_proxy_type_${_paraview_proxy_type}_xml_name")
2269 set(_paraview_proxy_name
"${_paraview_proxy_type_${_paraview_proxy_type}_xml_name}")
2270 set(_paraview_proxy_name_type
"QString")
2271 set(_paraview_proxy_cmp
"name == proxy->GetXMLName()")
2273 set(_paraview_proxy_name
"${_paraview_proxy_type_${_paraview_proxy_type}_xml_name_regex}")
2274 set(_paraview_proxy_name_type
"QRegularExpression")
2275 set(_paraview_proxy_cmp
"QString(proxy->GetXMLName()).contains(name)")
2278 if (NOT DEFINED
"_paraview_proxy_included_${_paraview_proxy_class}")
2279 string(APPEND _paraview_proxy_includes
2280 "#include \"${_paraview_proxy_class}.h\"\n")
2281 set(
"_paraview_proxy_included_${_paraview_proxy_class}" 1)
2283 string(APPEND _paraview_proxy_body
2285 static const QString group(\"${_paraview_proxy_group}\"); 2286 static const ${_paraview_proxy_name_type} name(\"${_paraview_proxy_name}\"); 2287 if (group == proxy->GetXMLGroup() && ${_paraview_proxy_cmp}) 2289 return new ${_paraview_proxy_class}(regGroup, regName, proxy, server, nullptr); 2295 "${_ParaViewPlugin_cmake_dir}/pqServerManagerModelImplementation.h.in" 2296 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_proxy_NAME}ServerManagerModelImplementation.h" 2299 "${_ParaViewPlugin_cmake_dir}/pqServerManagerModelImplementation.cxx.in" 2300 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_proxy_NAME}ServerManagerModelImplementation.cxx" 2303 set(
"${_paraview_proxy_INTERFACES}" 2304 "${_paraview_proxy_NAME}ServerManagerModelImplementation" 2307 set(
"${_paraview_proxy_SOURCES}" 2308 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_proxy_NAME}ServerManagerModelImplementation.cxx" 2309 "${CMAKE_CURRENT_BINARY_DIR}/${_paraview_proxy_NAME}ServerManagerModelImplementation.h" function paraview_plugin_scan()
.md Scanning plugins
function _paraview_plugin_debug(domain, format)
.md ParaView Plugin CMake API
#define _paraview_add_plugin_with_ui
#define _paraview_add_plugin_with_initializers
#define _paraview_add_plugin_with_xml
function paraview_client_documentation()
.md Documentation from XML files
function vtk_module_wrap_client_server()
.md Wrapping a set of VTK modules for ClientServer
function paraview_plugin_add_property_widget()
.md Plugin interfaces
function paraview_plugin_build()
.md Building plugins
#define _paraview_add_plugin_built_shared
std::string replace(std::string source, const std::string &search, const std::string &replace, bool all)
function paraview_plugin_add_tree_layout_strategy()
.md Tree layout strategy
function paraview_server_manager_process()
.md Building XML files
function paraview_server_manager_process_files()
.md The second way to process XML files directly.
function paraview_plugin_add_dock_window()
.md Dock window
function paraview_plugin_add_auto_start()
.md Auto start
function paraview_plugin_add_location()
.md Location
#define BUILD_SHARED_LIBS
function paraview_client_generate_help()
.md Generating help documentation
function paraview_plugin_add_action_group()
.md Action group
function paraview_plugin_add_proxy()
.md Proxy
function paraview_add_plugin(name)
.md Adding a plugin
#define _paraview_add_plugin_with_python
function paraview_plugin_write_conf()
.md Plugin configuration files
function paraview_plugin_add_toolbar()
.md Toolbar