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 set(PARAVIEW_BUILD_CANONICAL OFF)
58 set(PARAVIEW_ENABLE_RENDERING OFF)
59 set(PARAVIEW_ENABLE_NONESSENTIAL OFF)
60 if (PARAVIEW_BUILD_EDITION STREQUAL "CORE")
61  # all are OFF.
62 elseif (PARAVIEW_BUILD_EDITION STREQUAL "RENDERING")
63  set(PARAVIEW_ENABLE_RENDERING ON)
64 elseif (PARAVIEW_BUILD_EDITION STREQUAL "CATALYST")
65  set(PARAVIEW_BUILD_CANONICAL ON)
66 elseif (PARAVIEW_BUILD_EDITION STREQUAL "CATALYST_RENDERING")
67  set(PARAVIEW_ENABLE_RENDERING ON)
68  set(PARAVIEW_BUILD_CANONICAL ON)
69 elseif (PARAVIEW_BUILD_EDITION STREQUAL "CANONICAL")
70  set(PARAVIEW_ENABLE_RENDERING ON)
71  set(PARAVIEW_BUILD_CANONICAL ON)
72  set(PARAVIEW_ENABLE_NONESSENTIAL ON)
73 endif()
74 
75 # We want to warn users if PARAVIEW_BUILD_EDITION is changed after first configure since the default
76 # state of various other settings may not be what user expects.
77 if (DEFINED _paraview_build_edition_cached AND
78  NOT _paraview_build_edition_cached STREQUAL PARAVIEW_BUILD_EDITION)
79  message(WARNING
80  "Changing `PARAVIEW_BUILD_EDITION` after first configure will not setup "
81  "defaults for others settings correctly e.g. plugins enabled. It is "
82  "recommended that you start with a clean build directory and pass the "
83  "option to CMake using "
84  "'-DPARAVIEW_BUILD_EDITION:STRING=${PARAVIEW_BUILD_EDITION}'.")
85 endif()
86 set(_paraview_build_edition_cached "${PARAVIEW_BUILD_EDITION}" CACHE INTERNAL "")
87 
88 set(VTK_GROUP_ENABLE_PARAVIEW_CORE "YES" CACHE INTERNAL "")
89 if (PARAVIEW_BUILD_CANONICAL)
90  set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "YES" CACHE INTERNAL "")
91 else()
92  set(VTK_GROUP_ENABLE_PARAVIEW_CANONICAL "NO" CACHE INTERNAL "")
93 endif()
94 
95 #========================================================================
96 # CAPABILITY OPTIONS:
97 # Options that affect the build capabilities.
98 # These should begin with `PARAVIEW_USE_`.
99 #========================================================================
100 
101 # XXX(VTK): External VTK is not yet actually supported.
102 if (FALSE)
103 option(PARAVIEW_USE_EXTERNAL_VTK "Use an external VTK." OFF)
104 mark_as_advanced(PARAVIEW_USE_EXTERNAL_VTK)
105 else ()
106 set(PARAVIEW_USE_EXTERNAL_VTK OFF)
107 endif ()
108 
109 option(PARAVIEW_USE_MPI "Enable MPI support for parallel computing" OFF)
110 option(PARAVIEW_SERIAL_TESTS_USE_MPIEXEC
111  "Used on HPC to run serial tests on compute nodes" OFF)
112 mark_as_advanced(PARAVIEW_SERIAL_TESTS_USE_MPIEXEC)
113 option(PARAVIEW_USE_CUDA "Support CUDA compilation" OFF)
114 option(PARAVIEW_USE_VTKM "Enable VTK-m accelerated algorithms" "${PARAVIEW_ENABLE_NONESSENTIAL}")
115 if (UNIX AND NOT APPLE)
116  option(PARAVIEW_USE_MEMKIND "Build support for extended memory" OFF)
117 endif ()
118 
119 option(PARAVIEW_ENABLE_OPENVDB "Enable the OpenVDB Writer" OFF)
120 
121 option(PARAVIEW_GENERATE_SPDX "Generate SPDX file for each module." OFF)
122 mark_as_advanced(PARAVIEW_GENERATE_SPDX)
123 
124 # Add option to disable Fortran
125 if (NOT WIN32)
126  include(CheckFortran)
127  check_fortran_support()
128  if (CMAKE_Fortran_COMPILER)
129  set(_has_fortran TRUE)
130  else()
131  set(_has_fortran FALSE)
132  endif()
133  cmake_dependent_option(PARAVIEW_USE_FORTRAN "Enable Fortran support" ON
134  "_has_fortran" OFF)
135  mark_as_advanced(PARAVIEW_USE_FORTRAN)
136  unset(_has_fortran)
137 endif()
138 
139 vtk_deprecated_setting(python_default PARAVIEW_USE_PYTHON PARAVIEW_ENABLE_PYTHON OFF)
140 option(PARAVIEW_USE_PYTHON "Enable/Disable Python scripting support" "${python_default}")
141 
142 # Currently, we're making `PARAVIEW_USE_QT` available only when doing CANONICAL
143 # builds with RENDERING. This is technically not necessary so we can support that
144 # use-case if needed in future but will require some work to make sure the Qt components
145 # work correctly with missing proxies.
146 vtk_deprecated_setting(qt_gui_default PARAVIEW_USE_QT PARAVIEW_BUILD_QT_GUI "ON")
147 cmake_dependent_option(PARAVIEW_USE_QT
148  "Enable Qt-support needed for graphical UI" "${qt_gui_default}"
149  "PARAVIEW_BUILD_CANONICAL;PARAVIEW_ENABLE_RENDERING;PARAVIEW_ENABLE_NONESSENTIAL" OFF)
150 
151 # Add an option to enable using Qt WebEngine for widgets, as needed.
152 # Default is OFF. We don't want to depend on WebEngine unless absolutely needed.
153 cmake_dependent_option(PARAVIEW_USE_QTWEBENGINE
154  "Use Qt WebEngine components as needed." OFF
155  "PARAVIEW_USE_QT" OFF)
156 mark_as_advanced(PARAVIEW_USE_QTWEBENGINE)
157 
158 # Add an option to enable using Qt Help, as needed.
159 # Default is ON to enable integrated help/documentation.
160 cmake_dependent_option(PARAVIEW_USE_QTHELP
161  "Use Qt Help infrastructure as needed." ON
162  "PARAVIEW_USE_QT" OFF)
163 mark_as_advanced(PARAVIEW_USE_QTHELP)
164 
165 if (PARAVIEW_USE_QTHELP AND NOT PARAVIEW_USE_QTWEBENGINE)
166  message(STATUS "Using 'QtHelp' without 'QtWebEngine' will ignore embedded javascript and *.js files for documentation")
167 endif()
168 
169 if (PARAVIEW_ENABLE_RAYTRACING AND VTK_ENABLE_OSPRAY)
170  set(paraview_use_materialeditor ON)
171 else ()
172  set(paraview_use_materialeditor OFF)
173 endif ()
174 
175 #========================================================================
176 # FEATURE OPTIONS:
177 # Options that toggle features. These should begin with `PARAVIEW_ENABLE_`.
178 #========================================================================
179 
180 vtk_deprecated_setting(raytracing_default PARAVIEW_ENABLE_RAYTRACING PARAVIEW_USE_RAYTRACING "OFF")
181 option(PARAVIEW_ENABLE_RAYTRACING "Build ParaView with OSPray and/or OptiX ray-tracing support" "${raytracing_default}")
182 
183 set(paraview_web_default ON)
184 if (PARAVIEW_USE_PYTHON AND WIN32)
185  include("${CMAKE_CURRENT_SOURCE_DIR}/VTK/CMake/FindPythonModules.cmake")
186  find_python_module(win32api have_pywin32)
187  set(paraview_web_default "${have_pywin32}")
188 endif ()
189 
190 if (NOT PARAVIEW_BUILD_EDITION STREQUAL "CANONICAL")
191  set(paraview_web_default OFF)
192 endif()
193 cmake_dependent_option(PARAVIEW_ENABLE_WEB "Enable/Disable web support" "${paraview_web_default}"
194  "PARAVIEW_USE_PYTHON" OFF)
195 
196 # NvPipe requires an NVIDIA GPU.
197 option(PARAVIEW_ENABLE_NVPIPE "Build ParaView with NvPipe remoting. Requires CUDA and an NVIDIA GPU" OFF)
198 
199 option(PARAVIEW_ENABLE_ALEMBIC "Enable Alembic support." OFF)
200 
201 option(PARAVIEW_ENABLE_GDAL "Enable GDAL support." OFF)
202 
203 option(PARAVIEW_ENABLE_LAS "Enable LAS support." OFF)
204 
205 option(PARAVIEW_ENABLE_GEOVIS "Enable GeoVis support." OFF)
206 
207 option(PARAVIEW_ENABLE_OPENTURNS "Enable OpenTURNS support." OFF)
208 
209 option(PARAVIEW_ENABLE_PDAL "Enable PDAL support." OFF)
210 
211 option(PARAVIEW_ENABLE_MOTIONFX "Enable MotionFX support." OFF)
212 
213 option(PARAVIEW_ENABLE_MOMENTINVARIANTS "Enable MomentInvariants filters" OFF)
214 
215 option(PARAVIEW_ENABLE_LOOKINGGLASS "Enable LookingGlass displays" OFF)
216 
217 option(PARAVIEW_ENABLE_VISITBRIDGE "Enable VisIt readers." OFF)
218 
219 option(PARAVIEW_ENABLE_CATALYST "Enable ParaViewCatalyst implementation" OFF)
220 
221 # default to ON for CANONICAL builds, else OFF.
222 set(xdmf2_default OFF)
223 if (PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL)
224  set(xdmf2_default ON)
225 endif()
226 option(PARAVIEW_ENABLE_XDMF2 "Enable Xdmf2 support." "${xdmf2_default}")
227 
228 option(PARAVIEW_ENABLE_XDMF3 "Enable Xdmf3 support." OFF)
229 
230 option(PARAVIEW_ENABLE_ADIOS2 "Enable ADIOS 2.x support." OFF)
231 
232 option(PARAVIEW_ENABLE_FIDES "Enable Fides support." OFF)
233 
234 option(PARAVIEW_ENABLE_FFMPEG "Enable FFMPEG Support." OFF)
235 
236 option(PARAVIEW_ENABLE_OCCT "Enable OCCT Support." OFF)
237 
238 option(PARAVIEW_BUILD_TRANSLATIONS "Generate translation files" OFF)
239 if (PARAVIEW_BUILD_TRANSLATIONS)
240  set(PARAVIEW_TRANSLATIONS_DIRECTORY "${CMAKE_BINARY_DIR}/Translations" CACHE STRING
241  "The directory containing translation files")
242 endif()
243 
244 # If building on Unix with MPI enabled, we will present another option to
245 # enable building of CosmoTools VTK extensions. This option is by default
246 # OFF and set to OFF if ParaView is not built with MPI.
247 cmake_dependent_option(PARAVIEW_ENABLE_COSMOTOOLS
248  "Build ParaView with CosmoTools VTK Extensions" OFF
249  "UNIX;PARAVIEW_USE_MPI" OFF)
250 
251 # PARAVIEW_ENABLE_CGNS_* option is only shown when PARAVIEW_ENABLE_NONESSENTIAL is
252 # OFF and then it defaults to OFF. If PARAVIEW_ENABLE_NONESSENTIAL is ON, then
253 # PARAVIEW_ENABLE_CGNS_* is set to ON as well and presented to the user at all.
254 cmake_dependent_option(PARAVIEW_ENABLE_CGNS_READER
255  "Enable CGNS Reader Support" OFF
256  "NOT PARAVIEW_ENABLE_NONESSENTIAL" ON)
257 cmake_dependent_option(PARAVIEW_ENABLE_CGNS_WRITER
258  "Enable CGNS Reader Support" OFF
259  "NOT PARAVIEW_ENABLE_NONESSENTIAL" ON)
260 
261 #========================================================================
262 # MISCELLANEOUS OPTIONS:
263 # Options that are hard to classify. Keep this list minimal.
264 # These should be advanced by default.
265 #========================================================================
266 option(PARAVIEW_INSTALL_DEVELOPMENT_FILES "Install development files to the install tree" ON)
267 mark_as_advanced(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
268 
269 option(PARAVIEW_RELOCATABLE_INSTALL "Do not embed hard-coded paths into the install" ON)
270 mark_as_advanced(PARAVIEW_RELOCATABLE_INSTALL)
271 
272 
273 cmake_dependent_option(PARAVIEW_INITIALIZE_MPI_ON_CLIENT
274  "Initialize MPI on client-processes by default. Can be overridden using command line arguments" ON
275  "PARAVIEW_USE_MPI" OFF)
276 mark_as_advanced(PARAVIEW_INITIALIZE_MPI_ON_CLIENT)
277 
278 set(PARAVIEW_LOGGING_TIME_PRECISION "3"
279  CACHE STRING "Precision of loguru scope timers. 3=ms, 6=us, 9=ns")
280 mark_as_advanced(PARAVIEW_LOGGING_TIME_PRECISION)
281 set(known_logging_precisions 3 6 9)
282 set_property(CACHE PARAVIEW_LOGGING_TIME_PRECISION
283  PROPERTY
284  STRINGS ${known_logging_precisions})
285 if (NOT PARAVIEW_LOGGING_TIME_PRECISION IN_LIST known_logging_precisions)
286  string(REPLACE ";" ", " known_logging_precisions_list "${known_logging_precisions}")
287  message(FATAL_ERROR
288  "`PARAVIEW_LOGGING_TIME_PRECISION` must be one of "
289  "${known_logging_precisions_list}; given '${PARAVIEW_LOGGING_TIME_PRECISION}'")
290 endif ()
291 
292 #========================================================================
293 # OBSOLETE OPTIONS: mark obsolete settings
294 #========================================================================
295 vtk_obsolete_setting(PARAVIEW_ENABLE_LOGGING)
296 vtk_obsolete_setting(PARAVIEW_ENABLE_QT_SUPPORT)
297 vtk_obsolete_setting(PARAVIEW_ENABLE_COMMANDLINE_TOOLS)
298 vtk_obsolete_setting(PARAVIEW_FREEZE_PYTHON)
299 vtk_obsolete_setting(PARAVIEW_USE_MPI_SSEND)
300 vtk_obsolete_setting(PARAVIEW_USE_ICE_T)
301 
302 #========================================================================================
303 # Build up list of required and rejected modules
304 #========================================================================================
305 set(paraview_requested_modules)
306 set(paraview_rejected_modules)
307 
308 #[==[
309 Conditionally require/reject optional modules
310 
311 Use this macro to conditionally require (or reject) modules.
312 
313 ~~~
314 paraview_require_module(
315  MODULES <module>...
316  [CONDITION <condition>]
317  [EXCLUSIVE]
318 ~~~
319 
320 The arguments are as follows:
321 
322  * `MODULES`: (Required) The list of modules.
323  * `CONDITION`: (Defaults to `TRUE`) The condition under which the modules
324  specified are added to the requested list.
325  * `EXCLUSIVE`: When sepcified, if `CONDITION` is false, the module will be
326  added to the rejected modules list.
327 #]==]
328 macro (paraview_require_module)
329  cmake_parse_arguments(pem
330  "EXCLUSIVE"
331  ""
332  "CONDITION;MODULES"
333  ${ARGN})
334 
335  if (pem_UNPARSED_ARGUMENTS)
336  message(FATAL_ERROR
337  "Unparsed arguments for `paraview_require_module`: "
338  "${pem_UNPARSED_ARGUMENTS}")
339  endif ()
340 
341  if (NOT DEFINED pem_CONDITION)
342  set(pem_CONDITION TRUE)
343  endif ()
344 
345  if (${pem_CONDITION})
346  # message("${pem_CONDITION} == TRUE")
347  list(APPEND paraview_requested_modules ${pem_MODULES})
348  foreach (_pem_module IN LISTS _pem_MODULES)
349  set("_vtk_module_reason_${_pem_module}"
350  "via `${pem_CONDITION}`")
351  endforeach ()
352  elseif (pem_EXCLUSIVE)
353  # message("${pem_CONDITION} == FALSE")
354  list(APPEND paraview_rejected_modules ${pem_MODULES})
355  foreach (_pem_module IN LISTS _pem_MODULES)
356  set("_vtk_module_reason_${_pem_module}"
357  "via `${pem_CONDITION}`")
358  endforeach ()
359  endif()
360 
361  unset(pem_EXCLUSIVE)
362  unset(pem_CONDITION)
363  unset(pem_MODULES)
364  unset(pem_UNPARSED_ARGUMENTS)
365  unset(_pem_module)
366 endmacro()
367 
368 # ensures that VTK::mpi module is rejected when MPI is not enabled.
369 paraview_require_module(
370  CONDITION PARAVIEW_USE_MPI
371  MODULES VTK::ParallelMPI
372  VTK::mpi
373  EXCLUSIVE)
374 
375 paraview_require_module(
376  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_ENABLE_RENDERING
377  MODULES VTK::RenderingParallelLIC
378  EXCLUSIVE)
379 
380 # ensures VTK::Python module is rejected when Python is not enabled.
381 paraview_require_module(
382  CONDITION PARAVIEW_USE_PYTHON
383  MODULES VTK::Python
384  VTK::PythonInterpreter
385  EXCLUSIVE)
386 
387 paraview_require_module(
388  CONDITION PARAVIEW_USE_PYTHON AND PARAVIEW_ENABLE_RENDERING AND PARAVIEW_BUILD_CANONICAL
389  MODULES VTK::RenderingMatplotlib)
390 
391 paraview_require_module(
392  CONDITION PARAVIEW_USE_VTKM
393  MODULES VTK::AcceleratorsVTKmFilters
394  EXCLUSIVE)
395 
396 paraview_require_module(
397  CONDITION PARAVIEW_ENABLE_RAYTRACING AND PARAVIEW_ENABLE_RENDERING
398  MODULES VTK::RenderingRayTracing
399  EXCLUSIVE)
400 
401 paraview_require_module(
402  CONDITION PARAVIEW_ENABLE_RAYTRACING AND VTK_ENABLE_OSPRAY
403  MODULES ParaView::VTKExtensionsShaderBall
404  EXCLUSIVE)
405 
406 paraview_require_module(
407  CONDITION PARAVIEW_ENABLE_NVPIPE
408  MODULES ParaView::nvpipe
409  EXCLUSIVE)
410 
411 paraview_require_module(
412  CONDITION PARAVIEW_ENABLE_ALEMBIC
413  MODULES VTK::IOAlembic
414  EXCLUSIVE)
415 
416 paraview_require_module(
417  CONDITION PARAVIEW_ENABLE_GDAL
418  MODULES VTK::IOGDAL
419  EXCLUSIVE)
420 
421 paraview_require_module(
422  CONDITION PARAVIEW_ENABLE_LAS
423  MODULES VTK::IOLAS
424  EXCLUSIVE)
425 
426 paraview_require_module(
427  CONDITION PARAVIEW_ENABLE_GEOVIS
428  MODULES VTK::GeovisCore
429  EXCLUSIVE)
430 
431 paraview_require_module(
432  CONDITION PARAVIEW_ENABLE_OPENTURNS
433  MODULES VTK::FiltersOpenTURNS
434  EXCLUSIVE)
435 
436 paraview_require_module(
437  CONDITION PARAVIEW_ENABLE_PDAL
438  MODULES VTK::IOPDAL
439  EXCLUSIVE)
440 
441 paraview_require_module(
442  CONDITION PARAVIEW_ENABLE_MOTIONFX
443  MODULES VTK::IOMotionFX
444  EXCLUSIVE)
445 
446 paraview_require_module(
447  CONDITION PARAVIEW_ENABLE_MOMENTINVARIANTS
448  MODULES VTK::MomentInvariants
449  EXCLUSIVE)
450 
451 paraview_require_module(
452  CONDITION PARAVIEW_ENABLE_MOMENTINVARIANTS AND PARAVIEW_USE_MPI
453  MODULES VTK::ParallelMomentInvariants
454  EXCLUSIVE)
455 
456 paraview_require_module(
457  CONDITION PARAVIEW_ENABLE_LOOKINGGLASS
458  MODULES VTK::RenderingLookingGlass
459  EXCLUSIVE)
460 
461 paraview_require_module(
462  CONDITION PARAVIEW_ENABLE_VISITBRIDGE
463  MODULES ParaView::IOVisItBridge
464  ParaView::VisItLib
465  EXCLUSIVE)
466 
467 paraview_require_module(
468  CONDITION PARAVIEW_ENABLE_XDMF2
469  MODULES VTK::IOXdmf2
470  EXCLUSIVE)
471 
472 paraview_require_module(
473  CONDITION PARAVIEW_ENABLE_XDMF3
474  MODULES VTK::IOXdmf3
475  EXCLUSIVE)
476 
477 paraview_require_module(
478  CONDITION PARAVIEW_ENABLE_ADIOS2
479  MODULES VTK::IOADIOS2
480  EXCLUSIVE)
481 
482 paraview_require_module(
483  CONDITION PARAVIEW_ENABLE_FIDES
484  MODULES VTK::IOFides
485  EXCLUSIVE)
486 
487 paraview_require_module(
488  CONDITION PARAVIEW_ENABLE_OPENVDB
489  MODULES VTK::IOOpenVDB
490  EXCLUSIVE)
491 
492 paraview_require_module(
493  CONDITION PARAVIEW_ENABLE_FFMPEG
494  MODULES VTK::IOFFMPEG
495  EXCLUSIVE)
496 
497 paraview_require_module(
498  CONDITION PARAVIEW_ENABLE_CGNS_READER
499  MODULES VTK::IOCGNSReader
500  EXCLUSIVE)
501 
502 paraview_require_module(
503  CONDITION PARAVIEW_ENABLE_CGNS_WRITER
504  MODULES ParaView::VTKExtensionsIOCGNSWriter
505  EXCLUSIVE)
506 
507 paraview_require_module(
508  CONDITION PARAVIEW_ENABLE_CGNS_WRITER AND PARAVIEW_USE_MPI
509  MODULES ParaView::VTKExtensionsIOParallelCGNSWriter
510  EXCLUSIVE)
511 
512 paraview_require_module(
513  CONDITION PARAVIEW_ENABLE_WEB AND PARAVIEW_USE_PYTHON
514  MODULES VTK::WebCore
515  VTK::WebPython
516  EXCLUSIVE)
517 
518 paraview_require_module(
519  CONDITION PARAVIEW_ENABLE_OCCT
520  MODULES VTK::IOOCCT
521  EXCLUSIVE)
522 
523 paraview_require_module(
524  CONDITION PARAVIEW_BUILD_CANONICAL
525  MODULES ParaView::VTKExtensionsFiltersGeneral
526  VTK::DomainsChemistry
527  VTK::FiltersAMR
528  VTK::FiltersCore
529  VTK::FiltersExtraction
530  VTK::FiltersFlowPaths
531  VTK::FiltersGeneral
532  VTK::FiltersGeneric
533  VTK::FiltersGeometry
534  VTK::FiltersHybrid
535  VTK::FiltersHyperTree
536  VTK::FiltersModeling
537  VTK::FiltersOpenTURNS
538  VTK::FiltersParallel
539  VTK::FiltersParallelDIY2
540  VTK::FiltersParallelVerdict
541  VTK::FiltersSources
542  VTK::FiltersStatistics
543  VTK::FiltersTensor
544  VTK::FiltersTexture
545  VTK::FiltersVerdict
546  VTK::ImagingCore
547  VTK::ImagingFourier
548  VTK::ImagingGeneral
549  VTK::ImagingHybrid
550  VTK::ImagingSources
551  VTK::IOAsynchronous # needed for cinema
552  VTK::IOChemistry
553  VTK::IOGeometry
554  VTK::IOImage
555  VTK::IOInfovis
556  VTK::IOLegacy
557  VTK::IOParallel
558  VTK::IOParallelXML
559  VTK::IOPLY
560  VTK::IOVPIC
561  VTK::IOXML)
562 
563 paraview_require_module(
564  CONDITION PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL
565  MODULES VTK::IOAMR
566  VTK::IOCityGML
567  VTK::IOCONVERGECFD
568  VTK::IOFDS
569  VTK::IOIOSS
570  VTK::IOH5part
571  VTK::IOH5Rage
572  VTK::IONetCDF
573  VTK::IOOggTheora
574  VTK::IOOMF
575  VTK::IOParallelExodus
576  VTK::IOParallelLSDyna
577  VTK::IOPIO
578  VTK::IOHDF
579  VTK::IOSegY
580  VTK::IOTRUCHAS
581  VTK::IOVeraOut
582  VTK::IOTecplotTable
583  VTK::IOFLUENTCFF)
584 
585 paraview_require_module(
586  CONDITION PARAVIEW_ENABLE_RENDERING AND PARAVIEW_BUILD_CANONICAL
587  MODULES VTK::FiltersTexture
588  VTK::RenderingFreeType)
589 
590 paraview_require_module(
591  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_USE_PYTHON
592  MODULES VTK::ParallelMPI4Py)
593 
594 paraview_require_module(
595  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_BUILD_CANONICAL
596  MODULES VTK::FiltersParallelFlowPaths
597  VTK::FiltersParallelGeometry
598  VTK::FiltersParallelMPI
599  VTK::IOMPIImage)
600 
601 paraview_require_module(
602  CONDITION PARAVIEW_USE_MPI AND PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_NONESSENTIAL
603  MODULES VTK::IOParallelNetCDF)
604 
605 paraview_require_module(
606  CONDITION PARAVIEW_BUILD_CANONICAL AND PARAVIEW_ENABLE_RENDERING AND PARAVIEW_ENABLE_NONESSENTIAL
607  MODULES ParaView::RemotingMisc
608  ParaView::RemotingExport
609  ParaView::RemotingLive
610  ParaView::RemotingAnimation)
611 
612 # Legacy Catalyst Python modules depends on paraview.tpl.cinema_python
613 paraview_require_module(
614  CONDITION PARAVIEW_USE_PYTHON
615  MODULES ParaView::CinemaPython)
616 
617 paraview_require_module(
618  CONDITION PARAVIEW_ENABLE_CATALYST
619  MODULES VTK::IOCatalystConduit
620  EXCLUSIVE)
621 
622 if (NOT PARAVIEW_ENABLE_NONESSENTIAL)
623  # This ensures that we don't ever enable certain problematic
624  # modules when PARAVIEW_ENABLE_NONESSENTIAL is OFF.
625  set(nonessential_modules
626  VTK::netcdf
627  VTK::ogg
628  VTK::theora
629  VTK::xdmf2
630  VTK::xdmf3)
631 
632  # PARAVIEW_ENABLE_CGNS_* are the only options that can force the need for cgns and
633  # hdf5 TPLs when PARAVIEW_ENABLE_NONESSENTIAL is true.
634  if (NOT PARAVIEW_ENABLE_CGNS_READER AND NOT PARAVIEW_ENABLE_CGNS_WRITER)
635  list(APPEND nonessential_modules
636  VTK::cgns
637  VTK::hdf5)
638  endif()
639 
640  list(APPEND paraview_rejected_modules
641  ${nonessential_modules})
642  foreach (nonessential_module IN LISTS nonessential_modules)
643  set("_vtk_module_reason_${nonessential_module}"
644  "via `PARAVIEW_ENABLE_NONESSENTIAL` (via `PARAVIEW_BUILD_EDITION=${PARAVIEW_BUILD_EDITION}`)")
645  endforeach ()
646 
647  function (_paraview_io_option_conflict option name)
648  if (${option})
649  message(FATAL_ERROR
650  "ParaView is configured without I/O support (via the "
651  "${PARAVIEW_BUILD_EDITION} edition) which is incompatible with the "
652  "request for ${name} support (via the `${option}` configure option)")
653  endif ()
654  endfunction ()
655 
656  _paraview_io_option_conflict(PARAVIEW_ENABLE_ADIOS2 "ADIOS 2.x")
657  _paraview_io_option_conflict(PARAVIEW_ENABLE_ALEMBIC Alembic)
658  _paraview_io_option_conflict(PARAVIEW_ENABLE_FFMPEG FFmpeg)
659  _paraview_io_option_conflict(PARAVIEW_ENABLE_FIDES Fides)
660  _paraview_io_option_conflict(PARAVIEW_ENABLE_GDAL GDAL)
661  _paraview_io_option_conflict(PARAVIEW_ENABLE_LAS LAS)
662  _paraview_io_option_conflict(PARAVIEW_ENABLE_MOTIONFX MotionFX)
663  _paraview_io_option_conflict(PARAVIEW_ENABLE_OPENTURNS OpenTURNS)
664  _paraview_io_option_conflict(PARAVIEW_ENABLE_PDAL PDAL)
665  _paraview_io_option_conflict(PARAVIEW_ENABLE_VISITBRIDGE VisItBridge)
666  _paraview_io_option_conflict(PARAVIEW_ENABLE_XDMF2 xdmf2)
667  _paraview_io_option_conflict(PARAVIEW_ENABLE_XDMF3 xdmf3)
668 endif()
669 
670 if (NOT PARAVIEW_ENABLE_RENDERING)
671  # This ensures that we don't ever enable OpenGL
672  # modules when PARAVIEW_ENABLE_RENDERING is OFF.
673  set(rendering_modules
674  VTK::glew
675  VTK::opengl)
676  list(APPEND paraview_rejected_modules
677  ${rendering_modules})
678  foreach (rendering_module IN LISTS rendering_modules)
679  set("_vtk_module_reason_${rendering_module}"
680  "via `PARAVIEW_ENABLE_RENDERING` (via `PARAVIEW_BUILD_EDITION=${PARAVIEW_BUILD_EDITION}`)")
681  endforeach ()
682 
683  function (_paraview_rendering_option_conflict option name)
684  if (${option})
685  message(FATAL_ERROR
686  "ParaView is configured without Rendering support (via the "
687  "${PARAVIEW_BUILD_EDITION} edition) which is incompatible with the "
688  "request for ${name} support (via the `${option}` configure option)")
689  endif ()
690  endfunction ()
691 
692  _paraview_rendering_option_conflict(PARAVIEW_ENABLE_RAYTRACING raytracing)
693  _paraview_rendering_option_conflict(PARAVIEW_USE_QT Qt)
694 endif()
695 
696 if (paraview_requested_modules)
697  list(REMOVE_DUPLICATES paraview_requested_modules)
698 endif ()
699 
700 if (paraview_rejected_modules)
701  list(REMOVE_DUPLICATES paraview_rejected_modules)
702 endif()
paraview_require_module
macro paraview_require_module()
Conditionally require/reject optional modules.
Definition: ParaViewOptions.cmake:328
on
on
name
name
documentation
documentation
ADIOS
translation
translation