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