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