3 This page describes how to build and install ParaView. It covers building for
4 development, on both Linux and Windows. Please Note that Linux (x86_64), Windows (x86_64)
5 and macOS (x86_64 and arm64) version are built and tested by our continuous
6 integration system and are considered supported environments.
8 Any other environnements and architecture (including Cygwin, MingGW, PowerPC) are considered
9 non-officially supported, however, patches to fix problems with these platforms will
10 be considered for inclusion.
12 ParaView depends on several open source tools and libraries such as Python, Qt,
13 CGNS, HDF5, etc. Some of these are included in the ParaView source itself
14 (e.g., HDF5), while others are expected to be present on the machine on which
15 ParaView is being built (e.g., Python, Qt).
17 The first section is a getting started guide by OS that is very helpful if you have never
18 built ParaView before and do not know which options you need.
19 If you are looking for the generic help, please read the [Complete Compilation Guide](#complete-compilation-guide)
21 ## Getting Started Guide
22 This is a section intended to help those that have never built ParaView before, are not
23 experienced with compilation in general or have no idea which option they may need when building ParaView.
24 If you follow this guide, you will be able to compile and run a standard version of ParaView
25 for your operating system. It will be built with the Python wrapping, MPI capabilities and multithreading capabilities.
27 * If you are using a Linux distribution, please see [the Linux part](#linux),
28 * If you are using Microsoft Windows, please see [the Windows part](#windows),
29 * If you are using macOS, please see [the macOS part](#macos),
30 * If you are using another OS, feel free to provide compilation steps.
35 Please run the command in a terminal to install the following dependencies depending of your linux distribution.
37 ##### Ubuntu 22.04 LTS / Debian 12
39 `sudo apt-get install git cmake build-essential libgl1-mesa-dev libxt-dev libqt5x11extras5-dev libqt5help5 qttools5-dev qtxmlpatterns5-dev-tools libqt5svg5-dev python3-dev python3-numpy libopenmpi-dev libtbb-dev ninja-build qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools`
41 ##### Ubuntu 18.04 LTS / Debian 10
42 `sudo apt-get install git cmake build-essential libgl1-mesa-dev libxt-dev qt5-default libqt5x11extras5-dev libqt5help5 qttools5-dev qtxmlpatterns5-dev-tools libqt5svg5-dev python3-dev python3-numpy libopenmpi-dev libtbb-dev ninja-build`
47 Download and install [cmake][cmake-download]) as the packaged version is not enough considering that
48 CMake 3.12 or higher is needed.
51 `sudo yum install python3-devel openmpi-devel mesa-libGL-devel libX11-devel libXt-devel qt5-qtbase-devel qt5-qtx11extras-devel qt5-qttools-devel qt5-qtxmlpatterns-devel tbb-devel ninja-build git`
55 alias ninja=ninja-build
56 export PATH=$PATH:/usr/lib64/openmpi/bin/
60 `sudo pacman -S base-devel ninja openmpi tbb qt python python-numpy cmake`
62 ##### Other distribution
63 If you are using another distribution, please try to adapt the package list.
64 Feel free to then provide it so we can integrate it in this guide by creating an [issue][paraview-issues].
68 To build ParaView development version (usually refered as "master"), please run the following commands in a terminal:
70 git clone --recursive https://gitlab.kitware.com/paraview/paraview.git
73 cmake -GNinja -DPARAVIEW_USE_PYTHON=ON -DPARAVIEW_USE_MPI=ON -DVTK_SMP_IMPLEMENTATION_TYPE=TBB -DCMAKE_BUILD_TYPE=Release ../paraview
77 To build a specific ParaView version, eg: v5.9.1, please run the following commands in a terminal while replacing "tag" by the version you want to build
79 git clone https://gitlab.kitware.com/paraview/paraview.git
83 git submodule update --init --recursive
85 cmake -GNinja -DPARAVIEW_USE_PYTHON=ON -DPARAVIEW_USE_MPI=ON -DVTK_SMP_IMPLEMENTATION_TYPE=TBB -DCMAKE_BUILD_TYPE=Release ../paraview
90 Double click on the paraview executable in the `/bin` directory or run in the previous terminal
97 These instructions have worked on a mid 2023 MacMini with an M2 chipset on macOS Ventura.
100 Please run the command in a terminal to install the following dependencies on your Mac via [Homebrew](https://brew.sh/) and add the relevant environment variables for brew.
102 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
103 (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile
104 eval "$(/opt/homebrew/bin/brew shellenv)"
106 ##### Install dependencies (largely following the Ubuntu steps for Linux)
107 `brew install open-mpi cmake mesa tbb ninja gdal qt5`
109 ##### Set build environment
111 echo 'export PATH="/opt/homebrew/opt/qt@5/bin:$PATH"' >> ~/.zshrc
112 echo 'export LDFLAGS="-L/opt/homebrew/opt/qt@5/lib"' >> ~/.zshrc
113 echo 'export CPPFLAGS="-I/opt/homebrew/opt/qt@5/include"' >> ~/.zshrc
119 To build a specific ParaView version, eg: v5.11.1, please run the following commands in a terminal
121 git clone https://gitlab.kitware.com/paraview/paraview.git
125 git submodule update --init --recursive
127 cmake -GNinja -DPARAVIEW_USE_PYTHON=ON -DPARAVIEW_USE_MPI=ON -DVTK_SMP_IMPLEMENTATION_TYPE=TBB -DCMAKE_BUILD_TYPE=Release -DPARAVIEW_ENABLE_GDAL=ON ../paraview
132 Double click on the paraview executable in the `/bin` directory or run in the previous terminal
135 ./bin/paraview.app/Contents/MacOS/paraview
140 Note: The following steps concerning Visual Studio 2019 can also be applied to newer versions.
141 If so, be sure to use the respective Qt Version (e.g. for VS 2022, use msvc2022_64) and the Native Tools Command Prompt.
144 * Download and install [git bash for windows][gitforwindows]
145 * Download and install [cmake][cmake-download]
146 * Download and install [Visual Studio 2019 Community Edition][visual-studio]
147 * Download [ninja-build][ninja] and drop `ninja.exe` in `C:\Windows\`
148 * Download and install both `msmpisetup.exe` and `msmpisdk.msi` from [Microsoft MPI][msmpi]
149 * Download and install [Python for Windows][pythonwindows], make sure to add the path to your Python installation folder to the `PATH` environnement variable.
150 * Download and install [Qt 5.15.3][qt-download-5.15.3] for Windows, make sure to check the MSVC 2019 64-bit component during installation.
151 * Make sure to add `C:\Qt\Qt5.15.3\5.15.3\msvc2019_64\bin` to your `PATH` environment variable.
152 * You may also need to add an environment variable `QT_QPA_PLATFORM_PLUGIN_PATH`: `C:\Qt\Qt5.15.3\5.15.3\msvc2019_64\plugins\platforms`.
154 #### Recover the source
156 * To build ParaView development version (usually referred to as `master`), run the following commands:
162 git clone --recursive https://gitlab.kitware.com/paraview/paraview.git
167 * Or, to build a specific ParaView version, eg: v5.9.1, please run the following commands while replacing "tag" by the version you want to build
173 git clone https://gitlab.kitware.com/paraview/paraview.git
178 git submodule update --init --recursive
183 * Open VS2019 x64 Native Tools Command Prompt and run the following commands
186 cmake -GNinja -DPARAVIEW_USE_PYTHON=ON -DPARAVIEW_USE_MPI=ON -DVTK_SMP_IMPLEMENTATION_TYPE=STDThread -DCMAKE_BUILD_TYPE=Release ..\pv
190 Note: If you want to build ParaView with `CMAKE_BUILD_TYPE=Debug` you also need to add the option `-DPARAVIEW_WINDOWS_PYTHON_DEBUGGABLE=ON`.
194 * Double click on the `C:\pv\pvb\bin\paraview.exe` executable
196 ## Complete Compilation Guide
198 ### Obtaining the source
200 To obtain ParaView's sources locally, clone this repository using
204 git clone --recursive https://gitlab.kitware.com/paraview/paraview.git
209 ParaView supports all of the common generators supported by CMake. The Ninja,
210 Makefiles, and Visual Studio generators are the most well-tested however.
214 ParaView only requires a few packages to build with its basic capabilities. However,
215 specific features may require additional packages to be provided to ParaView's
221 - Version 3.12 or newer, however, the latest version is always recommended
225 - IBM XL 16.1 or newer
228 - Visual Studio 2019 or newer
230 Optional dependencies:
233 - At least 3.3 is required
235 - Version 5.12 or newer. Qt6 support is experimental and not tested yet.
237 ##### Installing CMake
239 CMake is a tool that makes cross-platform building simple. On several systems
240 it will probably be already installed or available through system package
241 management utilities. If it is not, there are precompiled binaries available on
242 [CMake's download page][cmake-download].
246 ParaView uses Qt to provide its graphical user interface. Precompiled binaries are available on
247 [Qt's website][qt-download].
249 Note that on Windows, the compiler used for building ParaView must match the
250 compiler version used to build Qt.
252 The Linux packages for Qt 5.9 use a version of protobuf that may conflict with
253 that used by ParaView. If, when running ParaView, error messages about a
254 mismatch in protobuf versions appears, moving the `libqgtk3.so` plugin out of
255 the `plugins/platformthemes` directory has been sufficient in the past.
257 #### Optional Additions
259 ##### Download And Install ffmpeg (`.avi`) movie libraries
261 When the ability to write `.avi` files is desired, and writing these files is
262 not supported by the OS, ParaView can use the ffmpeg library. This is generally
263 true for Linux. Source code for ffmpeg can be obtained from [its
268 To run ParaView in parallel, an [MPI][mpi] implementation is required. If an
269 MPI implementation that exploits special interconnect hardware is provided on
270 your system, we suggest using it for optimal performance. Otherwise, on
271 Linux/Mac, we suggest either [OpenMPI][openmpi] or [MPICH][mpich]. On Windows,
272 [Microsoft MPI][msmpi] is required.
276 In order to use Python scripting, [Python][python] is required (version 3.3 or later). Python
277 is also required in order to build ParaViewWeb support.
281 Off-screen Mesa can be used as a software-renderer for running ParaView on a
282 server without hardware OpenGL acceleration. This is usually available in
283 system packages on Linux. For example, the `libosmesa6-dev` package on Debian
284 and Ubuntu. However, for older machines, building a newer version of Mesa is
285 likely necessary for bug fixes and support for features needed by ParaView.
286 Its source and build instructions can be found on [its website][mesa].
288 ### Creating the Build Environment
290 #### Linux (Ubuntu/Debian)
292 * `sudo apt install` the following packages:
299 - `ninja` is a speedy replacement for `make`, highly recommended.
301 *Note*: If you are using an Ubuntu-provided compiler, there is a known issue
302 with the optional Python linking. This case is hard to auto-detect, so if
303 undefined symbol errors related to Python symbols arise, setting
304 `vtk_undefined_symbols_allowed=OFF` may resolve the errors. If it does not,
305 please file a new [issue][paraview-issues].
309 * [Visual Studio 2019 Community Edition][visual-studio]
310 * Use "x64 Native Tools Command Prompt" for the installed Visual Studio
311 version to configure with CMake and to build with ninja.
312 * Get [ninja][ninja]. Unzip the binary and put it in `PATH`.
316 In order to build, CMake requires two steps, configure and build. ParaView
317 itself does not support what are known as in-source builds, so the first step
318 is to create a build directory.
321 On Windows, there have historically been issues if the path to the
322 build directory is too long. These issues should have been addressed in
323 more recent versions of ParaView's build system, but they may appear again. If you
324 see errors related to header files not being found at paths on your file
325 system that do exist, please report them to [the issue
326 tracker][paraview-issues].
329 mkdir -p paraview/build
331 ccmake ../path/to/paraview/source # -GNinja may be added to use the Ninja generator
334 CMake's GUI has input entries for the build directory and the generator
335 already. Note that on Windows, the GUI must be launched from a "Native Tools
336 Command Prompt" available with Visual Studio in the start menu.
340 ParaView has a number of settings available for its build. These are categorized
341 as build options, capability options, feature options and miscellaneous options.
345 Options that impact the build begin with the prefix `PARAVIEW_BUILD_`.
346 Common variables to modify include:
348 * `PARAVIEW_BUILD_SHARED_LIBS` (default `ON`): If set, shared libraries will
349 be built. This is usually what is wanted.
351 Less common, but variables which may be of interest to some:
353 * `PARAVIEW_BUILD_EDITION` (default `CANONICAL`): Choose which features to
354 enable in this build. This is useful to generate ParaView builds with
355 limited features. More on this later.
356 * `PARAVIEW_ENABLE_EXAMPLES` (default `OFF`): If set, ParaView's example code
357 will be added as tests to the ParaView test suite. These tests may be built
358 and run using the `paraview-examples` target.
359 * `PARAVIEW_BUILD_DEVELOPER_DOCUMENTATION` (default `OFF`): If set, the HTML
360 documentation for ParaView's C++, Python, and proxies will be generated.
361 * `PARAVIEW_PLUGIN_DISABLE_XML_DOCUMENTATION` (default `OFF`): Whether
362 plugin XML documentation is forcefully disabled.
363 * `PARAVIEW_BUILD_TESTING` (default `OFF`): Whether to build tests or not.
364 Valid values are `OFF` (no testing), `DEFAULT` (enable tests which have all
365 test dependencies satisfied), `WANT` (enable test dependencies as possible;
366 see vtk/vtk#17509), and `ON` (enable all tests; may error out if features
367 otherwise disabled are required by test code).
368 * `PARAVIEW_BUILD_VTK_TESTING` (default `OFF`): Whether to build tests for the
369 VTK codebase built by ParaView. Valid values are same as
370 `PARAVIEW_BUILD_TESTING`.
371 * `PARAVIEW_ENABLE_CATALYST` (default `OFF`): Whether to build the ParaView
372 implementation of Catalyst.
374 More advanced build options are:
376 * `PARAVIEW_BUILD_ALL_MODULES` (default `OFF`): If set, ParaView will enable
377 all modules not disabled by other features.
378 * `PARAVIEW_BUILD_LEGACY_REMOVE` (default `OFF`): Remove legacy / deprecated
380 * `PARAVIEW_BUILD_LEGACY_SILENT` (default `OFF`): Silence all legacy
381 / deprecated code messages.
382 * `PARAVIEW_BUILD_WITH_EXTERNAL` (default `OFF`): When set to `ON`, the build
383 will try to use external copies of all included third party libraries unless
384 explicitly overridden.
385 * `PARAVIEW_BUILD_WITH_KITS` (default `OFF`; requires
386 `PARAVIEW_BUILD_SHARED_LIBS`): Compile ParaView into a smaller set of
387 libraries. Can be useful on platforms where ParaView takes a long time to
388 launch due to expensive disk access.
389 * `PARAVIEW_BUILD_ID` (default `""`): A build ID for the ParaView build. It
390 can be any arbitrary value which can be used to indicate the provenance of
392 * `PARAVIEW_GENERATE_SPDX` (default `OFF`): When compiling ParaView, generate
393 a SPDX file for each of ParaView modules containing license and copyright
396 #### Capability settings
398 These settings control capabitities of the build. These begin with the prefix
399 `PARAVIEW_USE_`. The common variables to modify include:
401 * `PARAVIEW_USE_QT` (default `ON`): Builds the `paraview` GUI application.
402 * `PARAVIEW_USE_MPI` (default `OFF`): Whether MPI support will be available
404 * `PARAVIEW_USE_PYTHON` (default `OFF`): Whether Python
405 support will be available or not.
407 Less common, but potentially useful variables are:
409 * `PARAVIEW_USE_VTKM` (default `ON`): Whether VTK-m based filters are enabled.
410 * `PARAVIEW_USE_FORTRAN` (default `ON` if Fortran compiler found): Enable
411 Fortran support for Catalyst libraries.
412 * `PARAVIEW_USE_CUDA` (default `OFF`): Enable CUDA support in ParaView.
413 * `PARAVIEW_USE_HIP` (default `OFF`, requires CMake >= 3.21 and NOT
414 `PARAVIEW_USE_CUDA`): Enable HIP support in ParaView.
415 * `PARAVIEW_LOGGING_TIME_PRECISION` (default `3`): Change the precision of
416 times output. Possible values are 3 for ms, 6 for us, 9 for ns.
417 * `PARAVIEW_USE_SERIALIZATION` (default `OFF`): Whether VTK serialization is enabled.
419 #### Feature settings
421 These settings control optional features. These begin with the prefix
422 `PARAVIEW_ENABLE_`. The common variables to modify include:
424 * `PARAVIEW_ENABLE_RAYTRACING` (default `OFF`): Enable ray-tracing support
425 with OSPray and/or OptiX. Requires appropriate external libraries.
426 * `PARAVIEW_ENABLE_WEB` (default `OFF`; requires `PARAVIEW_USE_PYTHON`):
427 Whether ParaViewWeb support will be available or not.
429 These settings are used for translating purpose:
430 * `PARAVIEW_BUILD_TRANSLATIONS` (default `OFF`): Enable translation
431 files update and generation.
432 * `PARAVIEW_TRANSLATIONS_DIRECTORY` (default `${CMAKE_BINARY_DIR}/Translations`):
433 Path where the translation files will be generated on build.
435 More advanced / less common options include:
437 * `PARAVIEW_ENABLE_VISITBRIDGE` (default `OFF`): Enable support for VisIt
439 * `PARAVIEW_ENABLE_NVPIPE` (default `OFF`): Use [nvpipe][nvpipe] image
440 compression that uses the GPU when communicating. Requires CUDA and an NVIDIA GPU.
441 * `PARAVIEW_ENABLE_GDAL` (default `OFF`): Enable support for reading GDAL
443 * `PARAVIEW_ENABLE_LAS` (default `OFF`): Enable support for reading LAS
445 * `PARAVIEW_ENABLE_OPENTURNS` (default `OFF`): Enable support for reading
447 * `PARAVIEW_ENABLE_PDAL` (default `OFF`): Enable support for reading PDAL
449 * `PARAVIEW_ENABLE_MOTIONFX` (default `OFF`): Enable support for reading
451 * `PARAVIEW_ENABLE_MOMENTINVARIANTS` (default `OFF`): Enable
452 MomentInvariants filters.
453 * `PARAVIEW_ENABLE_LOOKINGGLASS` (default `OFF`): Enable support for LookingGlass displays.
454 * `PARAVIEW_ENABLE_XDMF2` (default `OFF`): Enable support for reading Xdmf2
456 * `PARAVIEW_ENABLE_XDMF3` (default `OFF`): Enable support for reading Xdmf3
458 * `PARAVIEW_ENABLE_FFMPEG` (default `OFF`; not available on Windows): Enable
460 * `PARAVIEW_ENABLE_COSMOTOOLS` (default `OFF`; requires `PARAVIEW_USE_MPI`
461 and not available on Windows): Enable support for CosmoTools which includes
462 GenericIO readers and writers as well as some point cloud algorithms.
463 * `PARAVIEW_ENABLE_CGNS_READER` (default `ON` for CANONICAL builds, `OFF` for
464 non-CANONICAL builds): Enable support for reading CGNS files. When building
465 ParaView for e.g. CATALYST, this option allows building support for reading
466 CGNS files. It will also build CGNSReader dependencies: HDF5 and CGNS.
467 * `PARAVIEW_ENABLE_CGNS_WRITER` (default `ON` for CANONICAL builds, `OFF` for
468 non-CANONICAL builds): Enable support for writing CGNS files. When building
469 ParaView for e.g. CATALYST, this option allows building support for writing
470 CGNS files. It will also build CGNSReader dependencies: HDF5 and CGNS. If
471 `PARAVIEW_ENABLE_MPI` is `ON`, the parallel CGNS writer will also be built.
472 * `PARAVIEW_ENABLE_OCCT` (default `OFF`): Enable support for reading OpenCascade
473 file formats such as STEP and IGES.
477 ParaView includes several optional plugins that can be enabled and disabled using the
480 * `PARAVIEW_PLUGINS_DEFAULT` (default `ON`): Pass this flag to the command
481 line using `-DPARAVIEW_PLUGINS_DEFAULT=OFF` before the first cmake run to
482 disable all plugins by default. Note this has no impact after the first
483 cmake configure and hence must be passed on the command line itself.
484 * `PARAVIEW_PLUGIN_ENABLE_<name>` (default varies): Whether to enable a
486 * `PARAVIEW_PLUGIN_AUTOLOAD_<name>` (default `OFF`): Whether to autoload a
487 plugin at startup or not. Note that this affects all clients linking to
488 ParaView's plugin target.
490 #### Miscellaneous settings
491 ParaView uses VTK's module system to control its build. This infrastructure
492 provides a number of variables to control modules which are not otherwise
493 controlled by the other options provided.
495 * `VTK_MODULE_USE_EXTERNAL_<name>` (default depends on
496 `PARAVIEW_BUILD_WITH_EXTERNAL`): Use an external source for the named third-party
497 module rather than the copy contained within the ParaView source tree.
498 * `VTK_MODULE_ENABLE_<name>` (default `DEFAULT`): Change the build settings
499 for the named module. Valid values are those for the module system's build
500 settings (see below).
501 * `VTK_GROUP_ENABLE_<name>` (default `DEFAULT`): Change the default build
502 settings for modules belonging to the named group. Valid values are those
503 for the module system's build settings (see below).
505 For variables that use the module system's build settings, the valid values are as follows:
507 * `YES`: Require the module to be built.
508 * `WANT`: Build the module if possible.
509 * `DEFAULT`: Use the settings by the module's groups and
510 `PARAVIEW_BUILD_ALL_MODULES`.
511 * `DONT_WANT`: Don't build the module unless required as a dependency.
512 * `NO`: Do not build the module.
514 If any `YES` module requires a `NO` module, an error is raised.
516 More advanced options:
518 * `PARAVIEW_INITIALIZE_MPI_ON_CLIENT` (default `ON`; requires
519 `PARAVIEW_USE_MPI`): Initialize MPI on client processes by default.
520 * `PARAVIEW_USE_QTHELP` (default `ON`; requires `PARAVIEW_USE_QT`): Use Qt's
521 help infrastructure for runtime documentation.
522 * `PARAVIEW_VERSIONED_INSTALL` (default `ON`): Whether to add version numbers
523 to ParaView's include and plugin directories in the install tree.
524 * `PARAVIEW_CUSTOM_LIBRARY_SUFFIX` (default depends on
525 `PARAVIEW_VERSIONED_INSTALL`): The custom suffix for libraries built by
526 ParaView. Defaults to either an empty string or `pvX.Y` where `X` and `Y`
527 are ParaView's major and minor version components, respectively.
528 * `PARAVIEW_INSTALL_DEVELOPMENT_FILES` (default `ON`): If set, ParaView will
529 install its headers, CMake API, etc. into its install tree for use.
530 * `PARAVIEW_RELOCATABLE_INSTALL` (default `ON`): If set, the install tree
531 will be relocatable to another path or machine. External dependencies
532 needed by ParaView which are in non-standard locations may need manual
533 settings in ParaView-using projects (those which share an install prefix
534 with ParaView should be OK though). If unset, the install tree will include
535 hints for the location of its dependencies which may include
536 build-machine-specific paths in the install tree.
537 * `PARAVIEW_SERIAL_TESTS_USE_MPIEXEC` (default `OFF`): Used on HPC to run
538 serial tests on compute nodes. If set, it prefixes serial tests with
539 "${MPIEXEC_EXECUTABLE}" "${MPIEXEC_NUMPROC_FLAG}" "1" ${MPI_PREFLAGS}
540 * `PARAVIEW_SKIP_CLANG_TIDY_FOR_VTK` (defaults `ON`; requires
541 `CMAKE_<LANG>_CLANG_TIDY`): If set, any `clang-tidy` settings will be
542 cleared for the internal VTK build.
543 * `PARAVIEW_TEST_DIR`: Used on HPC to set the test directory (default is
544 "${CMAKE_BINARY_DIR}/Testing/Temporary") to a location that is writable from
545 the compute nodes. Typically the user home directory is not.
546 * `PARAVIEW_LINKER_FATAL_WARNINGS`: Specify if linker warnings must
547 be considered as errors
548 * `PARAVIEW_EXTRA_COMPILER_WARNINGS`: Add compiler flags to do
549 stricter checking when building debug
552 These variables should be documented once they're effective again. Note that
553 various settings have a dependency on this that is not mentioned since the
554 option doesn't "exist" yet.
556 * `PARAVIEW_USE_EXTERNAL_VTK` (default `OFF`): Use an externally provided
557 VTK. Note that ParaView has fairly narrow requirements for the VTK it can
558 use, so only very recent versions are likely to work.
563 A typical ParaView build includes several modules and dependencies. While these
564 are necessary for a fully functional application, there are cases (e.g. in situ
565 use-cases) where a build with limited set of features is adequate. ParaView build supports
566 this using the `PARAVIEW_BUILD_EDITION` setting. Supported values for this setting are:
568 * `CORE`: Build modules necessary for core ParaView functionality.
569 This does not include rendering.
570 * `RENDERING`: Build modules necessary for supporting rendering including views
571 and representations. This includes everything in `CORE`.
572 * `CATALYST`: Build all modules necessary for in situ use cases without
573 rendering and optional components like NetCDF- and HDF5-based readers and
575 * `CATALYST_RENDERING`: Same as `CATALYST` but with rendering supported added.
576 * `CANONICAL` (default): Build modules necessary for standard ParaView build.
578 ## Debugging facilities
580 ParaView's build is fairly complicated, so a few debugging facilities are
585 CMake provides the `--trace-expand` flag which causes CMake to log all commands
586 that it executes with variables expanded. This can help to trace logic and data
587 through the configure step.
589 Debugging `Find` modules can be done using the `--debug-find` flag (introduced
590 in CMake 3.17) to determine what CMake's `find_` commands are doing.
594 VTK's module system debugging facilities may be controlled by using the
597 * `ParaView_DEBUG_MODULE` (default `OFF`): If enabled, debugging is enabled.
598 Specific portions of the module system may be debugged using the other
600 * `ParaView_DEBUG_MODULE_ALL` (default `OFF`): Enable all debugging messages.
601 * `ParaView_DEBUG_MODULE_building` (default `OFF`): Log when modules are
603 * `ParaView_DEBUG_MODULE_enable` (default `OFF`): Log why modules are
605 * `ParaView_DEBUG_MODULE_kit` (default `OFF`): Log information about
607 * `ParaView_DEBUG_MODULE_module` (default `OFF`): Log information about
609 * `ParaView_DEBUG_MODULE_provide` (default `OFF`): Log why a module is being
611 * `ParaView_DEBUG_MODULE_testing` (default `OFF`): Log testing for VTK
616 ParaView's plugin system has a similar setup:
618 * `ParaView_DEBUG_PLUGINS` (default `OFF`): If enabled, debugging is enabled.
619 Specific portions of the plugin system may be debugged using the other
621 * `ParaView_DEBUG_PLUGINS_ALL` (default `OFF`): Enable all debugging messages.
622 * `ParaView_DEBUG_PLUGINS_building` (default `OFF`): Log when plugins are
624 * `ParaView_DEBUG_PLUGINS_plugin` (default `OFF`): Log information about
627 ### Building documentation
629 The following targets are used to build documentation for ParaView:
631 * `ParaViewDoxygenDoc` - build the doxygen documentation from ParaView's C++ source files.
632 * `ParaViewPythonDoc` - build the documentation from ParaView's Python source files.
633 * `ParaViewDoc-TGZ` - build a gzipped tarball of ParaView documentation.
637 [Spack][spack] is a package manager for supercomputers, Linux and macOS. ParaView is one of
638 the packages available in Spack. To install ParaView from spack, you can use:
641 spack install paraview
644 Please refer to [Spack documentation][spack-docs] for ways of customizing the install,
645 including choosing the version and/or variant to build. Based on the version chosen,
646 spack will download appropriate ParaView source and build it.
648 To make it easier to build ParaView using spack from an existing source checkout, we have included
649 relevant spack `package.yaml` files within the ParaView codebase itself. This
650 also makes it easier to keep the spack package up-to-date with any changes to
651 the ParaView buildsystem. With every release (and as frequently as required), we
652 will push the changes to the ParaView paraview.yaml file upstream to the
653 official spack repository.
655 To build your existing source checkout of ParaView using Spack, here are the
659 # assuming you've installed spack as documented in spack docs
660 # and activate the spack environment appropriately
662 # add custom paraview/package.yaml
663 > spack repo add $PARAVIEW_SOURCE_DIR/Utilities/spack/repo
665 # use info to confirm that the paraview package is available
666 # only one version should be available
667 > spack info paraview
669 # install similar to any other spack package
670 # e.g. following command installs osmesa-capable ParaView
673 > spack install paraview+osmesa^mesa~glx^mpich
676 [cmake-download]: https://cmake.org/download
677 [cmake]: https://cmake.org
678 [ffmpeg]: https://ffmpeg.org
679 [git]: https://git-scm.org
680 [gitforwindows]: https://gitforwindows.org/
681 [mesa]: https://www.mesa3d.org
682 [mpi]: https://www.mcs.anl.gov/research/projects/mpi
683 [mpich]: https://www.mpich.org
684 [msmpi]: https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi
685 [ninja]: https://github.com/ninja-build/ninja/releases
686 [nvpipe]: https://github.com/NVIDIA/NvPipe
687 [openmpi]: https://www.open-mpi.org
688 [paraview-issues]: https://gitlab.kitware.com/paraview/paraview/-/issues
689 [python]: https://python.org
690 [pythonwindows]: https://www.python.org/downloads/windows/
691 [qt-download]: https://download.qt.io/official_releases/qt
693 [qt-download-5.15.3]: https://download.qt.io/archive/qt/5.15/5.15.3/
694 [tbb]: https://github.com/intel/tbb/releases
695 [visual-studio]: https://visualstudio.microsoft.com/vs/older-downloads
696 [spack]: https://spack.io/
697 [spack-docs]: https://spack.readthedocs.io/en/latest/