ParaViewOptions.cmake
Go to the documentation of this file.
1 #========================================================================
2 # BUILD OPTIONS:
3 # Options that affect the ParaView build, in general.
4 # These should begin with `PARAVIEW_BUILD_`.
5 #========================================================================
6 
7 vtk_deprecated_setting(shared_default PARAVIEW_BUILD_SHARED_LIBS BUILD_SHARED_LIBS "ON")
8 option(PARAVIEW_BUILD_SHARED_LIBS "Build ParaView with shared libraries" "${shared_default}")
9 
10 vtk_deprecated_setting(legacy_remove_default PARAVIEW_BUILD_LEGACY_REMOVE VTK_LEGACY_REMOVE "OFF")
11 option(PARAVIEW_BUILD_LEGACY_REMOVE "Remove all legacy code completely" "${legacy_remove_default}")
12 mark_as_advanced(PARAVIEW_BUILD_LEGACY_REMOVE)
13 
14 vtk_deprecated_setting(legacy_silent_default PARAVIEW_BUILD_LEGACY_SILENT VTK_LEGACY_SILENT "OFF")
15 option(PARAVIEW_BUILD_LEGACY_SILENT "Silence all legacy code messages" "${legacy_silent_default}")
16 mark_as_advanced(PARAVIEW_BUILD_LEGACY_SILENT)
17 
18 # Kits bundle multiple modules together into a single library, this
19 # is used to dramatically reduce the number of generated libraries.
20 vtk_deprecated_setting(kits_default PARAVIEW_BUILD_WITH_KITS PARAVIEW_ENABLE_KITS "OFF")
21 cmake_dependent_option(PARAVIEW_BUILD_WITH_KITS "Build ParaView using kits instead of modules." OFF
22  # Static builds don't make sense with kits. Ignore the flag if shared
23  # libraries aren't being built.
24  "PARAVIEW_BUILD_SHARED_LIBS" OFF)
25 mark_as_advanced(PARAVIEW_BUILD_WITH_KITS)
26 
27 vtk_deprecated_setting(external_default PARAVIEW_BUILD_WITH_EXTERNAL PARAVIEW_USE_EXTERNAL "OFF")
28 option(PARAVIEW_BUILD_WITH_EXTERNAL "Use external copies of third party libraries by default" OFF)
29 mark_as_advanced(PARAVIEW_BUILD_WITH_EXTERNAL)
30 
31 option(PARAVIEW_BUILD_ALL_MODULES "Build all modules by default" OFF)
32 mark_as_advanced(PARAVIEW_BUILD_ALL_MODULES)
33 set(_vtk_module_reason_WANT_BY_DEFAULT
34  "via `PARAVIEW_BUILD_ALL_MODULES`")
35 
36 vtk_deprecated_setting(examples_default PARAVIEW_ENABLE_EXAMPLES PARAVIEW_BUILD_EXAMPLES "OFF")
37 option(PARAVIEW_ENABLE_EXAMPLES "Enable ParaView examples" "${examples_default}")
38 set(PARAVIEW_BUILD_TESTING "OFF"
39  CACHE STRING "Enable testing")
40 set_property(CACHE PARAVIEW_BUILD_TESTING
41  PROPERTY
42  STRINGS "ON;OFF;WANT;DEFAULT")
43 
44 cmake_dependent_option(PARAVIEW_BUILD_VTK_TESTING "Enable VTK testing" OFF
45  "PARAVIEW_BUILD_TESTING" OFF)
46 option(PARAVIEW_BUILD_DEVELOPER_DOCUMENTATION "Generate ParaView C++/Python docs" "${doc_default}")
47 
48 option(PARAVIEW_PLUGIN_DISABLE_XML_DOCUMENTATION "Forcefully disable XML documentation generation" OFF)
49 mark_as_advanced(PARAVIEW_PLUGIN_DISABLE_XML_DOCUMENTATION)
50 
51 set(PARAVIEW_BUILD_EDITION "CANONICAL"
52  CACHE STRING "Enable ParaView components essential for requested capabilities.")
53 set_property(CACHE PARAVIEW_BUILD_EDITION
54  PROPERTY
55  STRINGS "CORE;RENDERING;CATALYST;CATALYST_RENDERING;CANONICAL")
56 
57 cmake_dependent_option(PARAVIEW_BUILD_EDITION_STRICT
58  "Restrict VTK modules to those strictly needed by the PARAVIEW_BUILD_EDITION" ON
59  "NOT PARAVIEW_USE_EXTERNAL_VTK" OFF)
60 
61 set(PARAVIEW_BUILD_CANONICAL OFF)
62 set(PARAVIEW_ENABLE_RENDERING OFF)
63 set(PARAVIEW_ENABLE_NONESSENTIAL OFF)
64 if (PARAVIEW_BUILD_EDITION STREQUAL "CORE")
65  # all are OFF.
66 elseif (PARAVIEW_BUILD_EDITION STREQUAL "RENDERING")
67  set(PARAVIEW_ENABLE_RENDERING ON)
68 elseif (PARAVIEW_BUILD_EDITION STREQUAL "CATALYST")
69  set(PARAVIEW_BUILD_CANONICAL ON)
70 elseif (PARAVIEW_BUILD_EDITION STREQUAL "CATALYST_RENDERING")
71  set(PARAVIEW_ENABLE_RENDERING ON)
72  set(PARAVIEW_BUILD_CANONICAL ON)
73 elseif (PARAVIEW_BUILD_EDITION STREQUAL "CANONICAL")
74  set(PARAVIEW_ENABLE_RENDERING ON)
75  set(PARAVIEW_BUILD_CANONICAL ON)
76  set(PARAVIEW_ENABLE_NONESSENTIAL ON)
77 endif()
78 
79 # We want to warn users if PARAVIEW_BUILD_EDITION is changed after first configure since the default
80 # state of various other settings may not be what user expects.
81 if (DEFINED _paraview_build_edition_cached AND
82  NOT _paraview_build_edition_cached STREQUAL PARAVIEW_BUILD_EDITION)
83  message(WARNING
84  "Changing `PARAVIEW_BUILD_EDITION` after first configure will not setup "
85  "defaults for others settings correctly e.g. plugins enabled. It is "
86  "recommended that you start with a clean build directory and pass the "
87  "option to CMake using "
88  "'-DPARAVIEW_BUILD_EDITION:STRING=${PARAVIEW_BUILD_EDITION}'.")
89 endif()
90 set(_paraview_build_edition_cached "${PARAVIEW_BUILD_EDITION}" CACHE INTERNAL "")
91 
92 set(VTK_GROUP_ENABLE_PARAVIEW_CORE "YES" CACHE INTERNAL "")
93 if (PARAVIEW_BUILD_CANONICAL)
94  set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "YES" CACHE INTERNAL "")
95 else()
96  set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "NO" CACHE INTERNAL "")
97 endif()
98 
99 #========================================================================
100 # CAPABILITY OPTIONS:
101 # Options that affect the build capabilities.
102 # These should begin with `PARAVIEW_USE_`.
103 #========================================================================
104 
105 option(PARAVIEW_USE_MPI "Enable MPI support for parallel computing" OFF)
106 option(PARAVIEW_SERIAL_TESTS_USE_MPIEXEC
107  "Used on HPC to run serial tests on compute nodes" OFF)
108 mark_as_advanced(PARAVIEW_SERIAL_TESTS_USE_MPIEXEC)
109 option(PARAVIEW_USE_CUDA "Support CUDA compilation" OFF)
110 
111 vtk_deprecated_setting(default_use_viskores PARAVIEW_USE_VISKORES PARAVIEW_USE_VTKM "${PARAVIEW_ENABLE_NONESSENTIAL}")
112 option(PARAVIEW_USE_VISKORES "Enable Viskores accelerated algorithms" "${default_use_viskores}")
113 
114 if (UNIX AND NOT APPLE)
115  option(PARAVIEW_USE_MEMKIND "Build support for extended memory" OFF)
116 endif ()
117 
118 # Add option to disable Fortran
119 if (NOT WIN32)
120  include(CheckFortran)
121  check_fortran_support()
122  if (CMAKE_Fortran_COMPILER)
123  set(_has_fortran TRUE)
124  else()
125  set(_has_fortran FALSE)
126  endif()
127  cmake_dependent_option(PARAVIEW_USE_FORTRAN "Enable Fortran support" ON
128  "_has_fortran" OFF)
129  mark_as_advanced(PARAVIEW_USE_FORTRAN)
130  unset(_has_fortran)
131 endif()
132 
133 vtk_deprecated_setting(python_default PARAVIEW_USE_PYTHON PARAVIEW_ENABLE_PYTHON OFF)
134 option(PARAVIEW_USE_PYTHON "Enable/Disable Python scripting support" "${python_default}")
135 
136 option(PARAVIEW_USE_SERIALIZATION "Enable/Disable Serialization support" OFF)
137 
138 # Currently, we're making `PARAVIEW_USE_QT` available only when doing CANONICAL
139 # builds with RENDERING. This is technically not necessary so we can support that
140 # use-case if needed in future but will require some work to make sure the Qt components
141 # work correctly with missing proxies.
142 vtk_deprecated_setting(qt_gui_default PARAVIEW_USE_QT PARAVIEW_BUILD_QT_GUI "ON")
143 cmake_dependent_option(PARAVIEW_USE_QT
144  "Enable Qt-support needed for graphical UI" "${qt_gui_default}"
145  "PARAVIEW_BUILD_CANONICAL;PARAVIEW_ENABLE_RENDERING;PARAVIEW_ENABLE_NONESSENTIAL" OFF)
146 
147 # Add an option to enable using Qt WebEngine for widgets, as needed.
148 # Default is OFF. We don't want to depend on WebEngine unless absolutely needed.
149 cmake_dependent_option(PARAVIEW_USE_QTWEBENGINE
150  "Use Qt WebEngine components as needed." OFF
151  "PARAVIEW_USE_QT" OFF)
152 mark_as_advanced(PARAVIEW_USE_QTWEBENGINE)
153 
154 # Add an option to enable using Qt Help, as needed.
155 # Default is ON to enable integrated help/documentation.
156 cmake_dependent_option(PARAVIEW_USE_QTHELP
157  "Use Qt Help infrastructure as needed." ON
158  "PARAVIEW_USE_QT" OFF)
159 mark_as_advanced(PARAVIEW_USE_QTHELP)
160 
161 if (PARAVIEW_USE_QTHELP AND NOT PARAVIEW_USE_QTWEBENGINE)
162  message(STATUS "Using 'QtHelp' without 'QtWebEngine' will ignore embedded javascript and *.js files for documentation")
163 endif()
164 
165 if (PARAVIEW_ENABLE_RAYTRACING AND VTK_ENABLE_OSPRAY)
166  set(paraview_use_materialeditor ON)
167 else ()
168  set(paraview_use_materialeditor OFF)
169 endif ()
170 
171 #========================================================================
172 # FEATURE OPTIONS:
173 # Options that toggle features. These should begin with `PARAVIEW_ENABLE_`.
174 #========================================================================
175 
176 option(PARAVIEW_ENABLE_ANARI "Enable Anari Support" OFF)
177 
178 vtk_deprecated_setting(raytracing_default PARAVIEW_ENABLE_RAYTRACING PARAVIEW_USE_RAYTRACING "OFF")
179 option(PARAVIEW_ENABLE_RAYTRACING "Build ParaView with OSPray and/or OptiX ray-tracing support" ${raytracing_default})
180 
181 if (PARAVIEW_ENABLE_RAYTRACING AND NOT VTK_ENABLE_OSPRAY AND NOT VTK_ENABLE_VISRTX)
182  message(WARNING "Ray Tracing module is activated without any ray tracing implementation.
183  Please activate either VTK_ENABLE_OSPRAY and/or VTK_ENABLE_VISRTX in order to provide a raytracing implementation for ParaView.")
184 endif ()
185 
186 set(paraview_web_default ON)
187 if (PARAVIEW_USE_PYTHON AND WIN32)
188  include(ParaViewFindPythonModules)
189  find_python_module(win32api have_pywin32)
190  set(paraview_web_default "${have_pywin32}")
191 endif ()
192 
193 if (NOT PARAVIEW_BUILD_EDITION STREQUAL "CANONICAL")
194  set(paraview_web_default OFF)
195 endif()
196 cmake_dependent_option(PARAVIEW_ENABLE_WEB "Enable/Disable web support" "${paraview_web_default}"
197  "PARAVIEW_USE_PYTHON" OFF)
198 
199 # NvPipe requires an NVIDIA GPU.
200 option(PARAVIEW_ENABLE_NVPIPE "Build ParaView with NvPipe remoting. Requires CUDA and an NVIDIA GPU" OFF)
201 if (PARAVIEW_ENABLE_NVPIPE)
202  message(DEPRECATION
203  "NvPipe is not longer supported. See "
204  "https://gitlab.kitware.com/paraview/paraview/-/issues/23231 for progress")
205  set(PARAVIEW_ENABLE_NVPIPE OFF)
206 endif ()
207 
208 option(PARAVIEW_ENABLE_OPENVDB "Enable the OpenVDB Writer" OFF)
209 
210 option(PARAVIEW_ENABLE_NANOVDB "Enable the NanoVDB Writer" OFF)
211 
212 option(PARAVIEW_ENABLE_ALEMBIC "Enable Alembic support." OFF)
213 
214 option(PARAVIEW_ENABLE_GDAL "Enable GDAL support." OFF)
215 
216 option(PARAVIEW_ENABLE_LAS "Enable LAS support." OFF)
217 
218 option(PARAVIEW_ENABLE_OPENTURNS "Enable OpenTURNS support." OFF)
219 
220 option(PARAVIEW_ENABLE_PDAL "Enable PDAL support." OFF)
221 
222 option(PARAVIEW_ENABLE_MOTIONFX "Enable MotionFX support." OFF)
223 
224 option(PARAVIEW_ENABLE_MOMENTINVARIANTS "Enable MomentInvariants filters" OFF)
225 
226 option(PARAVIEW_ENABLE_LOOKINGGLASS "Enable LookingGlass displays" OFF)
227 
228 option(PARAVIEW_ENABLE_VISITBRIDGE "Enable VisIt readers." OFF)
229 
230 option(PARAVIEW_ENABLE_CATALYST "Enable ParaViewCatalyst implementation" OFF)
231 
232 # default to ON for CANONICAL builds, else OFF.
233 set(xdmf2_default OFF)
234 if (PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL)
235  set(xdmf2_default ON)
236 endif()
237 option(PARAVIEW_ENABLE_XDMF2 "Enable Xdmf2 support." "${xdmf2_default}")
238 
239 option(PARAVIEW_ENABLE_XDMF3 "Enable Xdmf3 support." OFF)
240 
241 option(PARAVIEW_ENABLE_ADIOS2 "Enable ADIOS 2.x support." OFF)
242 
243 option(PARAVIEW_ENABLE_FIDES "Enable Fides support." OFF)
244 
245 # Fides support inside the ParaView Catalyst implementation. This lets a
246 # simulation hand ParaView data over a Catalyst "fides_conduit" channel: an
247 # in-memory Conduit tree read directly by the Fides reader (no ADIOS2 file or
248 # SST stream). It enables the Fides reader and forces the VTK::conduit module
249 # on (required for Fides' in-memory Conduit data source). It does NOT enable
250 # the ADIOS2 reader (PARAVIEW_ENABLE_ADIOS2); note, however, that the adios2
251 # library is still required to build Fides itself, and that VTK::conduit
252 # requires Catalyst to have been built against the same external Conduit
253 # (CATALYST_WITH_EXTERNAL_CONDUIT=ON).
254 cmake_dependent_option(PARAVIEW_ENABLE_CATALYST_FIDES
255  "Enable Fides (in-memory Conduit) support in the ParaView Catalyst implementation" OFF
256  "PARAVIEW_ENABLE_CATALYST" OFF)
257 
258 option(PARAVIEW_ENABLE_FFMPEG "Enable FFMPEG Support." OFF)
259 
260 option(PARAVIEW_ENABLE_OCCT "Enable OCCT Support." OFF)
261 
262 option(PARAVIEW_ENABLE_IFC "Enable IFC Support." OFF)
263 
264 option(PARAVIEW_BUILD_TRANSLATIONS "Generate translation files" OFF)
265 if (PARAVIEW_BUILD_TRANSLATIONS)
266  set(PARAVIEW_TRANSLATIONS_DIRECTORY "${CMAKE_BINARY_DIR}/Translations" CACHE STRING
267  "The directory containing translation files")
268 endif()
269 
270 # If building on Unix with MPI enabled, we will present another option to
271 # enable building of CosmoTools VTK extensions. This option is by default
272 # OFF and set to OFF if ParaView is not built with MPI.
273 cmake_dependent_option(PARAVIEW_ENABLE_COSMOTOOLS
274  "Build ParaView with CosmoTools VTK Extensions" OFF
275  "UNIX;PARAVIEW_USE_MPI" OFF)
276 
277 # PARAVIEW_ENABLE_CGNS_* option is only shown when PARAVIEW_ENABLE_NONESSENTIAL is
278 # OFF and then it defaults to OFF. If PARAVIEW_ENABLE_NONESSENTIAL is ON, then
279 # PARAVIEW_ENABLE_CGNS_* is set to ON as well and presented to the user at all.
280 cmake_dependent_option(PARAVIEW_ENABLE_CGNS_READER
281  "Enable CGNS Reader Support" OFF
282  "NOT PARAVIEW_ENABLE_NONESSENTIAL" ON)
283 cmake_dependent_option(PARAVIEW_ENABLE_CGNS_WRITER
284  "Enable CGNS Reader Support" OFF
285  "NOT PARAVIEW_ENABLE_NONESSENTIAL" ON)
286 
287 #========================================================================
288 # MISCELLANEOUS OPTIONS:
289 # Options that are hard to classify. Keep this list minimal.
290 # These should be advanced by default.
291 #========================================================================
292 option(PARAVIEW_INSTALL_DEVELOPMENT_FILES "Install development files to the install tree" ON)
293 mark_as_advanced(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
294 
295 option(PARAVIEW_RELOCATABLE_INSTALL "Do not embed hard-coded paths into the install" ON)
296 mark_as_advanced(PARAVIEW_RELOCATABLE_INSTALL)
297 
298 option(PARAVIEW_GENERATE_SPDX "Generate SPDX file for each module." OFF)
299 mark_as_advanced(PARAVIEW_GENERATE_SPDX)
300 
301 cmake_dependent_option(PARAVIEW_INITIALIZE_MPI_ON_CLIENT
302  "Initialize MPI on client-processes by default. Can be overridden using command line arguments" ON
303  "PARAVIEW_USE_MPI" OFF)
304 mark_as_advanced(PARAVIEW_INITIALIZE_MPI_ON_CLIENT)
305 
306 set(PARAVIEW_LOGGING_TIME_PRECISION "3"
307  CACHE STRING "Precision of loguru scope timers. 3=ms, 6=us, 9=ns")
308 mark_as_advanced(PARAVIEW_LOGGING_TIME_PRECISION)
309 set(known_logging_precisions 3 6 9)
310 set_property(CACHE PARAVIEW_LOGGING_TIME_PRECISION
311  PROPERTY
312  STRINGS ${known_logging_precisions})
313 if (NOT PARAVIEW_LOGGING_TIME_PRECISION IN_LIST known_logging_precisions)
314  string(REPLACE ";" ", " known_logging_precisions_list "${known_logging_precisions}")
315  message(FATAL_ERROR
316  "`PARAVIEW_LOGGING_TIME_PRECISION` must be one of "
317  "${known_logging_precisions_list}; given '${PARAVIEW_LOGGING_TIME_PRECISION}'")
318 endif ()
319 
320 #========================================================================
321 # OBSOLETE OPTIONS: mark obsolete settings
322 #========================================================================
323 vtk_obsolete_setting(PARAVIEW_ENABLE_LOGGING)
324 vtk_obsolete_setting(PARAVIEW_ENABLE_QT_SUPPORT)
325 vtk_obsolete_setting(PARAVIEW_ENABLE_COMMANDLINE_TOOLS)
326 vtk_obsolete_setting(PARAVIEW_FREEZE_PYTHON)
327 vtk_obsolete_setting(PARAVIEW_USE_MPI_SSEND)
328 vtk_obsolete_setting(PARAVIEW_USE_ICE_T)
329 
330 #========================================================================================
331 # Build up list of required and rejected modules
332 #========================================================================================
333 set(paraview_requested_modules)
334 set(paraview_rejected_modules)
335 
336 #[==[
337 Conditionally require/reject optional modules
338 
339 Use this macro to conditionally require (or reject) modules.
340 
341 ~~~
343  MODULES <module>...
344  [CONDITION <condition>]
345  [EXCLUSIVE]
346 ~~~
347 
348 The arguments are as follows:
349 
350  * `MODULES`: (Required) The list of modules.
351  * `CONDITION`: (Defaults to `TRUE`) The condition under which the modules
352  specified are added to the requested list.
353  * `EXCLUSIVE`: When sepcified, if `CONDITION` is false, the module will be
354  added to the rejected modules list.
355 #]==]
357  cmake_parse_arguments(pem
358  "EXCLUSIVE"
359  ""
360  "CONDITION;MODULES"
361  ${ARGN})
362 
363  if (pem_UNPARSED_ARGUMENTS)
364  message(FATAL_ERROR
365  "Unparsed arguments for `paraview_require_module`: "
366  "${pem_UNPARSED_ARGUMENTS}")
367  endif ()
368 
369  if (NOT DEFINED pem_CONDITION)
370  set(pem_CONDITION TRUE)
371  endif ()
372 
373  if (${pem_CONDITION})
374  # message("${pem_CONDITION} == TRUE")
375  list(APPEND paraview_requested_modules ${pem_MODULES})
376  foreach (_pem_module IN LISTS _pem_MODULES)
377  set("_vtk_module_reason_${_pem_module}"
378  "via `${pem_CONDITION}`")
379  endforeach ()
380  elseif (pem_EXCLUSIVE)
381  # message("${pem_CONDITION} == FALSE")
382  list(APPEND paraview_rejected_modules ${pem_MODULES})
383  foreach (_pem_module IN LISTS _pem_MODULES)
384  set("_vtk_module_reason_${_pem_module}"
385  "via `${pem_CONDITION}`")
386  endforeach ()
387  endif()
388 
389  unset(pem_EXCLUSIVE)
390  unset(pem_CONDITION)
391  unset(pem_MODULES)
392  unset(pem_UNPARSED_ARGUMENTS)
393  unset(_pem_module)
394 endmacro()
395 
396 # ensures that VTK::mpi module is rejected when MPI is not enabled.
397 paraview_require_module(
398  CONDITION PARAVIEW_USE_MPI
399  MODULES VTK::ParallelMPI
400  VTK::mpi
401  EXCLUSIVE)
402 
404  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_ENABLE_RENDERING
405  MODULES VTK::RenderingParallelLIC
406  EXCLUSIVE)
407 
408 # ensures VTK::Python module is rejected when Python is not enabled.
410  CONDITION PARAVIEW_USE_PYTHON
411  MODULES VTK::Python
412  VTK::PythonInterpreter
413  ParaView::PythonInterpreterPath
414  EXCLUSIVE)
415 
417  CONDITION PARAVIEW_USE_PYTHON AND PARAVIEW_ENABLE_RENDERING AND PARAVIEW_BUILD_CANONICAL
418  MODULES VTK::RenderingMatplotlib)
419 
421  CONDITION PARAVIEW_USE_VISKORES
422  MODULES VTK::AcceleratorsVTKmFilters
423  EXCLUSIVE)
424 
426  CONDITION PARAVIEW_ENABLE_RAYTRACING AND PARAVIEW_ENABLE_RENDERING
427  MODULES VTK::RenderingRayTracing
428  EXCLUSIVE)
429 
431  CONDITION PARAVIEW_ENABLE_RENDERING AND PARAVIEW_ENABLE_ANARI
432  MODULES VTK::RenderingAnari
433  EXCLUSIVE)
434 
436  CONDITION PARAVIEW_ENABLE_RAYTRACING AND VTK_ENABLE_OSPRAY
437  MODULES ParaView::VTKExtensionsShaderBall
438  EXCLUSIVE)
439 
441  CONDITION PARAVIEW_ENABLE_NVPIPE
442  MODULES ParaView::nvpipe
443  EXCLUSIVE)
444 
446  CONDITION PARAVIEW_ENABLE_ALEMBIC
447  MODULES VTK::IOAlembic
448  EXCLUSIVE)
449 
451  CONDITION PARAVIEW_ENABLE_GDAL
452  MODULES VTK::IOGDAL
453  EXCLUSIVE)
454 
456  CONDITION PARAVIEW_ENABLE_LAS
457  MODULES VTK::IOLAS
458  EXCLUSIVE)
459 
461  CONDITION PARAVIEW_ENABLE_OPENTURNS
462  MODULES VTK::FiltersOpenTURNS
463  EXCLUSIVE)
464 
466  CONDITION PARAVIEW_ENABLE_PDAL
467  MODULES VTK::IOPDAL
468  EXCLUSIVE)
469 
471  CONDITION PARAVIEW_ENABLE_MOTIONFX
472  MODULES VTK::IOMotionFX
473  EXCLUSIVE)
474 
476  CONDITION PARAVIEW_ENABLE_MOMENTINVARIANTS
477  MODULES VTK::MomentInvariants
478  EXCLUSIVE)
479 
481  CONDITION PARAVIEW_ENABLE_MOMENTINVARIANTS AND PARAVIEW_USE_MPI
482  MODULES VTK::ParallelMomentInvariants
483  EXCLUSIVE)
484 
486  CONDITION PARAVIEW_ENABLE_LOOKINGGLASS
487  MODULES VTK::RenderingLookingGlass
488  EXCLUSIVE)
489 
491  CONDITION PARAVIEW_ENABLE_VISITBRIDGE
492  MODULES ParaView::IOVisItBridge
493  ParaView::VisItLib
494  EXCLUSIVE)
495 
497  CONDITION PARAVIEW_ENABLE_XDMF2
498  MODULES VTK::IOXdmf2
499  EXCLUSIVE)
500 
502  CONDITION PARAVIEW_ENABLE_XDMF3
503  MODULES VTK::IOXdmf3
504  EXCLUSIVE)
505 
507  CONDITION PARAVIEW_ENABLE_ADIOS2
508  MODULES VTK::IOADIOS2
509  EXCLUSIVE)
510 
512  CONDITION PARAVIEW_ENABLE_FIDES OR PARAVIEW_ENABLE_CATALYST_FIDES
513  MODULES VTK::IOFides
514  EXCLUSIVE)
515 
516 # The Catalyst "fides_conduit" channel needs the Fides reader's in-memory
517 # Conduit data source, which is only compiled when VTK::conduit is enabled.
518 # Not EXCLUSIVE: other features may legitimately enable VTK::conduit too.
520  CONDITION PARAVIEW_ENABLE_CATALYST_FIDES
521  MODULES VTK::conduit)
522 
524  CONDITION PARAVIEW_ENABLE_OPENVDB
525  MODULES VTK::IOOpenVDB
526  EXCLUSIVE)
527 
529  CONDITION PARAVIEW_ENABLE_NANOVDB
530  MODULES VTK::IONanoVDB
531  EXCLUSIVE)
532 
534  CONDITION PARAVIEW_ENABLE_FFMPEG
535  MODULES VTK::IOFFMPEG
536  EXCLUSIVE)
537 
539  CONDITION PARAVIEW_ENABLE_CGNS_READER
540  MODULES VTK::IOCGNSReader
541  EXCLUSIVE)
542 
544  CONDITION PARAVIEW_ENABLE_CGNS_WRITER
545  MODULES ParaView::VTKExtensionsIOCGNSWriter
546  EXCLUSIVE)
547 
549  CONDITION PARAVIEW_ENABLE_CGNS_WRITER AND PARAVIEW_USE_MPI
550  MODULES ParaView::VTKExtensionsIOParallelCGNSWriter
551  EXCLUSIVE)
552 
554  CONDITION PARAVIEW_ENABLE_WEB AND PARAVIEW_USE_PYTHON
555  MODULES VTK::WebCore
556  VTK::WebPython
557  EXCLUSIVE)
558 
560  CONDITION PARAVIEW_USE_SERIALIZATION
561  MODULES VTK::SerializationManager
562  EXCLUSIVE)
563 
565  CONDITION PARAVIEW_ENABLE_OCCT
566  MODULES VTK::IOOCCT
567  EXCLUSIVE)
568 
570  CONDITION PARAVIEW_ENABLE_IFC
571  MODULES VTK::IOIFC
572  EXCLUSIVE)
573 
575  CONDITION PARAVIEW_BUILD_CANONICAL
576  MODULES ParaView::VTKExtensionsFiltersGeneral
577  VTK::DomainsChemistry
578  VTK::FiltersAMR
579  VTK::FiltersCellGrid
580  VTK::FiltersCore
581  VTK::FiltersExtraction
582  VTK::FiltersFlowPaths
583  VTK::FiltersGeneral
584  VTK::FiltersGeneric
585  VTK::FiltersGeometry
586  VTK::FiltersHybrid
587  VTK::FiltersHyperTree
588  VTK::FiltersModeling
589  VTK::FiltersParallel
590  VTK::FiltersParallelDIY2
591  VTK::FiltersParallelVerdict
592  VTK::FiltersSources
593  VTK::FiltersStatistics
594  VTK::FiltersTemporal
595  VTK::FiltersTensor
596  VTK::FiltersTexture
597  VTK::FiltersVerdict
598  VTK::ImagingCore
599  VTK::ImagingFourier
600  VTK::ImagingGeneral
601  VTK::ImagingHybrid
602  VTK::ImagingSources
603  VTK::IOAsynchronous # needed for cinema
604  VTK::IOChemistry
605  VTK::IOGeometry
606  VTK::IOImage
607  VTK::IOInfovis
608  VTK::IOLegacy
609  VTK::IOParallel
610  VTK::IOParallelXML
611  VTK::IOPLY
612  VTK::IOVPIC
613  VTK::IOXML)
614 
616  CONDITION PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL
617  MODULES VTK::IOAMR
618  VTK::IOAvmesh
619  VTK::IOCellGrid
620  VTK::IOCityGML
621  VTK::IOCONVERGECFD
622  VTK::IOERF
623  VTK::IOFDS
624  VTK::IOIOSS
625  VTK::IOLANLX3D
626  VTK::IOH5part
627  VTK::IOH5Rage
628  VTK::IONetCDF
629  VTK::IOOggTheora
630  VTK::IOOMF
631  VTK::IOParallelExodus
632  VTK::IOParallelLSDyna
633  VTK::IOHDF
634  VTK::IOSegY
635  VTK::IOTRUCHAS
636  VTK::IOVeraOut
637  VTK::IOTecplotTable
638  VTK::IOFLUENTCFF)
639 
641  CONDITION PARAVIEW_ENABLE_RENDERING AND PARAVIEW_BUILD_CANONICAL
642  MODULES VTK::FiltersTexture
643  VTK::RenderingCellGrid
644  VTK::RenderingFreeType
645 )
646 
648  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_USE_PYTHON
649  MODULES VTK::ParallelMPI4Py)
650 
652  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_BUILD_CANONICAL
653  MODULES VTK::FiltersParallelFlowPaths
654  VTK::FiltersParallelGeometry
655  VTK::FiltersParallelMPI
656  VTK::IOMPIImage)
657 
659  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL
660  MODULES VTK::IOParallelNetCDF
661  VTK::IOPIO)
662 
664  CONDITION PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_RENDERING AND PARAVIEW_ENABLE_NONESSENTIAL
665  MODULES ParaView::RemotingMisc
666  ParaView::RemotingExport
667  ParaView::RemotingLive
668  ParaView::RemotingAnimation)
669 
670 # Legacy Catalyst Python modules depends on paraview.tpl.cinema_python
672  CONDITION PARAVIEW_USE_PYTHON
673  MODULES ParaView::CinemaPython)
674 
676  CONDITION PARAVIEW_ENABLE_CATALYST
677  MODULES VTK::IOCatalystConduit
678  EXCLUSIVE)
679 
680 if (NOT PARAVIEW_ENABLE_NONESSENTIAL)
681  # This ensures that we don't ever enable certain problematic
682  # modules when PARAVIEW_ENABLE_NONESSENTIAL is OFF.
683  set(nonessential_modules
684  VTK::netcdf
685  VTK::ogg
686  VTK::theora
687  VTK::xdmf2
688  VTK::xdmf3)
689 
690  # PARAVIEW_ENABLE_CGNS_* are the only options that can force the need for cgns
691  # TPL when PARAVIEW_ENABLE_NONESSENTIAL is true.
692  if (NOT PARAVIEW_ENABLE_CGNS_READER AND NOT PARAVIEW_ENABLE_CGNS_WRITER)
693  list(APPEND nonessential_modules
694  VTK::cgns)
695 
696  # if testing is enabled, this is expected to have hdf5 TPL
697  # as VTK::IOHDF is a dependency of vtkTestingCore. But usual features should not
698  # depends on it.
699  if (PARAVIEW_BUILD_TESTING STREQUAL "OFF")
700  list(APPEND nonessential_modules
701  VTK::hdf5)
702  endif()
703  endif()
704 
705  if (PARAVIEW_BUILD_EDITION_STRICT)
706  # Reject non-essential modules if in strict mode
707  list(APPEND paraview_rejected_modules
708  ${nonessential_modules})
709  endif ()
710  foreach (nonessential_module IN LISTS nonessential_modules)
711  set("_vtk_module_reason_${nonessential_module}"
712  "via `PARAVIEW_ENABLE_NONESSENTIAL` (via `PARAVIEW_BUILD_EDITION=${PARAVIEW_BUILD_EDITION}`)")
713  endforeach ()
714 
715  function (_paraview_io_option_conflict option name)
716  set(_error_level FATAL_ERROR)
717  if (NOT PARAVIEW_BUILD_EDITION_STRICT)
718  # Demote fatal error to debug for diagnostic purposes only.
719  set(_error_level DEBUG)
720  endif ()
721  if (${option})
722  message(${_error_level}
723  "ParaView is configured without I/O support (via the "
724  "${PARAVIEW_BUILD_EDITION} edition) which is incompatible with the "
725  "request for ${name} support (via the `${option}` configure option)")
726  endif ()
727  endfunction ()
728 
729  _paraview_io_option_conflict(PARAVIEW_ENABLE_ADIOS2 "ADIOS 2.x")
730  _paraview_io_option_conflict(PARAVIEW_ENABLE_ALEMBIC Alembic)
731  _paraview_io_option_conflict(PARAVIEW_ENABLE_FFMPEG FFmpeg)
732  _paraview_io_option_conflict(PARAVIEW_ENABLE_FIDES Fides)
733  _paraview_io_option_conflict(PARAVIEW_ENABLE_GDAL GDAL)
734  _paraview_io_option_conflict(PARAVIEW_ENABLE_LAS LAS)
735  _paraview_io_option_conflict(PARAVIEW_ENABLE_MOTIONFX MotionFX)
736  _paraview_io_option_conflict(PARAVIEW_ENABLE_OPENTURNS OpenTURNS)
737  _paraview_io_option_conflict(PARAVIEW_ENABLE_PDAL PDAL)
738  _paraview_io_option_conflict(PARAVIEW_ENABLE_VISITBRIDGE VisItBridge)
739  _paraview_io_option_conflict(PARAVIEW_ENABLE_XDMF2 xdmf2)
740  _paraview_io_option_conflict(PARAVIEW_ENABLE_XDMF3 xdmf3)
741 endif()
742 
743 if (NOT PARAVIEW_ENABLE_RENDERING)
744  # This ensures that we don't ever enable OpenGL
745  # modules when PARAVIEW_ENABLE_RENDERING is OFF.
746  set(rendering_modules
747  VTK::glad)
748  if (PARAVIEW_BUILD_EDITION_STRICT)
749  # Reject rendering modules if in strict mode
750  list(APPEND paraview_rejected_modules
751  ${rendering_modules})
752  endif ()
753  foreach (rendering_module IN LISTS rendering_modules)
754  set("_vtk_module_reason_${rendering_module}"
755  "via `PARAVIEW_ENABLE_RENDERING` (via `PARAVIEW_BUILD_EDITION=${PARAVIEW_BUILD_EDITION}`)")
756  endforeach ()
757 
758  function (_paraview_rendering_option_conflict option name)
759  set(_error_level FATAL_ERROR)
760  if (NOT PARAVIEW_BUILD_EDITION_STRICT)
761  # Demote fatal error to debug for diagnostic purposes only.
762  set(_error_level DEBUG)
763  endif ()
764  if (${option})
765  message(${_error_level}
766  "ParaView is configured without Rendering support (via the "
767  "${PARAVIEW_BUILD_EDITION} edition) which is incompatible with the "
768  "request for ${name} support (via the `${option}` configure option)")
769  endif ()
770  endfunction ()
771 
772  _paraview_rendering_option_conflict(PARAVIEW_ENABLE_RAYTRACING raytracing)
773  _paraview_rendering_option_conflict(PARAVIEW_USE_QT Qt)
774 endif()
775 
776 if (paraview_requested_modules)
777  list(REMOVE_DUPLICATES paraview_requested_modules)
778 endif ()
779 
780 if (paraview_rejected_modules)
781  list(REMOVE_DUPLICATES paraview_rejected_modules)
782 endif()
order
on
macro paraview_require_module()
Conditionally require/reject optional modules.
string
name
void nvpipe
#define BUILD_SHARED_LIBS
Definition: config.h:45
function vtk_deprecated_setting(output_default, new, old, intended_default)
enabled
function vtk_obsolete_setting(old)
documentation