2 # paraview-config.cmake
4 This file is used by CMake when finding ParaView.
6 The following variables are provided by this module:
8 * `ParaView_VERSION`: The version of ParaView found.
9 * `ParaView_PREFIX_PATH`: Install prefix for ParaView.
10 * `PARAVIEW_USE_QT`: If ParaView's Qt GUI is available.
11 * `PARAVIEW_USE_MPI`: If ParaView is built with MPI support.
12 * `PARAVIEW_USE_PYTHON`: If ParaView is built with Python support.
13 * `PARAVIEW_PYTHONPATH`: Where ParaView's Python modules live under the
14 install prefix. Unset if Python is not available.
15 * `PARAVIEW_PLUGIN_SUBDIR`: The subdirectory under the library directory for
17 * `ParaView_CLIENT_XML_FILES`: XML files for client applications to use to
18 reproduce ParaView's menu items. Only provided if `PARAVIEW_USE_QT`
20 * `ParaView_LIBRARIES`: The list of modules specified by `COMPONENTS` and
21 `OPTIONAL_COMPONENTS`. This may be used in `MODULES` arguments in the API
22 (e.g., `vtk_module_autoinit`). All modules are also targets and may be
23 linked to using `target_link_libraries`.
26 set(${CMAKE_FIND_PACKAGE_NAME}_CMAKE_MODULE_PATH_save "${CMAKE_MODULE_PATH}")
27 list(INSERT CMAKE_MODULE_PATH 0
28 "${CMAKE_CURRENT_LIST_DIR}")
30 set("${CMAKE_FIND_PACKAGE_NAME}_CMAKE_PREFIX_PATH_save" "${CMAKE_PREFIX_PATH}")
31 include("${CMAKE_CURRENT_LIST_DIR}/paraview-prefix.cmake")
32 set("${CMAKE_FIND_PACKAGE_NAME}_PREFIX_PATH"
33 "${_vtk_module_import_prefix}")
34 unset(_vtk_module_import_prefix)
35 list(INSERT CMAKE_PREFIX_PATH 0
36 "${${CMAKE_FIND_PACKAGE_NAME}_PREFIX_PATH}")
38 set("${CMAKE_FIND_PACKAGE_NAME}_VERSION" "@PARAVIEW_VERSION_FULL@")
40 unset("${CMAKE_FIND_PACKAGE_NAME}_FOUND")
42 set(_paraview_use_external_vtk "@PARAVIEW_USE_EXTERNAL_VTK@")
43 set(_paraview_find_package_args)
44 if (NOT _paraview_use_external_vtk)
45 list(APPEND _paraview_find_package_args
46 PATHS "${CMAKE_CURRENT_LIST_DIR}/vtk"
49 if (${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
50 list(APPEND _paraview_find_package_args
53 find_package(VTK REQUIRED
54 ${_paraview_find_package_args})
56 set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 0)
58 unset(_paraview_find_package_args)
59 unset(_paraview_use_external_vtk)
61 set(PARAVIEW_USE_QT "@PARAVIEW_USE_QT@")
62 set(PARAVIEW_USE_MPI "@PARAVIEW_USE_MPI@")
63 set(PARAVIEW_USE_PYTHON "@PARAVIEW_USE_PYTHON@")
64 set(PARAVIEW_PLUGIN_SUBDIR "paraview@paraview_version_suffix@/plugins")
66 if (PARAVIEW_USE_PYTHON)
67 set(PARAVIEW_PYTHONPATH "@PARAVIEW_PYTHON_SITE_PACKAGES_SUFFIX@")
68 include("${CMAKE_CURRENT_LIST_DIR}/ParaViewPython-targets.cmake")
69 # Unset this for now; these targets will be defined later.
70 unset("${CMAKE_FIND_PACKAGE_NAME}_FOUND")
71 unset("${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE")
74 include("${CMAKE_CURRENT_LIST_DIR}/${CMAKE_FIND_PACKAGE_NAME}-targets.cmake")
75 include("${CMAKE_CURRENT_LIST_DIR}/${CMAKE_FIND_PACKAGE_NAME}-vtk-module-properties.cmake")
77 include("${CMAKE_CURRENT_LIST_DIR}/paraview-find-package-helpers.cmake" OPTIONAL)
78 include("${CMAKE_CURRENT_LIST_DIR}/${CMAKE_FIND_PACKAGE_NAME}-vtk-module-find-packages.cmake")
80 include("${CMAKE_CURRENT_LIST_DIR}/${CMAKE_FIND_PACKAGE_NAME}Plugins-paraview_plugins-targets-depends.cmake")
81 include("${CMAKE_CURRENT_LIST_DIR}/${CMAKE_FIND_PACKAGE_NAME}Plugins-targets.cmake")
82 include("${CMAKE_CURRENT_LIST_DIR}/${CMAKE_FIND_PACKAGE_NAME}Plugins-paraview-plugin-properties.cmake")
84 include("${CMAKE_CURRENT_LIST_DIR}/ParaViewTools-targets.cmake" OPTIONAL)
86 include("${CMAKE_CURRENT_LIST_DIR}/ParaViewClient.cmake")
87 include("${CMAKE_CURRENT_LIST_DIR}/ParaViewPlugin.cmake")
88 include("${CMAKE_CURRENT_LIST_DIR}/ParaViewServerManager.cmake")
89 include("${CMAKE_CURRENT_LIST_DIR}/ParaViewTesting.cmake")
90 include("${CMAKE_CURRENT_LIST_DIR}/vtkModuleWrapClientServer.cmake")
92 if (@PARAVIEW_USE_PYTHON@) # PARAVIEW_USE_PYTHON
93 include("${CMAKE_CURRENT_LIST_DIR}/paraview.modules-vtk-python-module-properties.cmake")
96 if (@PARAVIEW_USE_QT@) # PARAVIEW_USE_QT
97 include("${CMAKE_CURRENT_LIST_DIR}/${CMAKE_FIND_PACKAGE_NAME}Client-targets.cmake")
98 include("${CMAKE_CURRENT_LIST_DIR}/ParaView-client-xml.cmake")
101 set(_paraview_components_to_check)
102 foreach (_paraview_component IN LISTS "${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS")
103 if (DEFINED "${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND")
104 # It was already not-found (likely due to `find-package` failures).
105 elseif (TARGET "${CMAKE_FIND_PACKAGE_NAME}::${_paraview_component}")
106 list(APPEND _paraview_components_to_check
107 "${_paraview_component}")
109 set("${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND" 0)
110 list(APPEND "${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_NOT_FOUND_MESSAGE"
111 "The ${_paraview_component} component is not available.")
114 unset(_paraview_component)
116 set(_paraview_vtk_components)
118 while (_paraview_components_to_check)
119 list(GET _paraview_components_to_check 0 _paraview_component)
120 list(REMOVE_AT _paraview_components_to_check 0)
121 if (DEFINED "${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND")
122 # We've already made a determiniation.
126 get_property(_paraview_dependencies
127 TARGET "${CMAKE_FIND_PACKAGE_NAME}::${_paraview_component}"
128 PROPERTY "INTERFACE_paraview_module_depends")
129 string(REPLACE "${CMAKE_FIND_PACKAGE_NAME}::" "" _paraview_dependencies "${_paraview_dependencies}")
130 set(_paraview_all_dependencies_checked TRUE)
131 foreach (_paraview_dependency IN LISTS _paraview_dependencies)
132 # Handle VTK module dependencies.
133 string(FIND "${_paraview_component}" "VTK::" _paraview_vtk_idx)
134 if (NOT _paraview_vtk_idx EQUAL -1)
135 unset(_paraview_vtk_idx)
136 if (NOT TARGET "${_paraview_dependency}")
137 set("${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND" 0)
138 list(APPEND "${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_NOT_FOUND_MESSAGE"
139 "Failed to find the ${_paraview_dependency} module.")
143 unset(_paraview_vtk_idx)
145 if (DEFINED "${CMAKE_FIND_PACKAGE_NAME}_${_paraview_dependency}_FOUND")
146 if (NOT ${CMAKE_FIND_PACKAGE_NAME}_${_paraview_dependency}_FOUND)
147 set("${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND" 0)
148 list(APPEND "${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_NOT_FOUND_MESSAGE"
149 "Failed to find the ${_paraview_dependency} component.")
152 # Check its dependencies.
153 list(APPEND _paraview_components_to_check
154 "${_paraview_dependency}")
155 set(_paraview_all_found FALSE)
158 if (NOT DEFINED "${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND")
159 if (_paraview_all_dependencies_checked)
160 set("${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND" 1)
162 list(APPEND _paraview_components_to_check
163 "${_paraview_component}")
166 unset(_paraview_all_dependencies_checked)
167 unset(_paraview_dependency)
168 unset(_paraview_dependencies)
170 unset(_paraview_component)
171 unset(_paraview_components_to_check)
173 set(_paraview_missing_components)
174 foreach (_paraview_component IN LISTS "${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS")
175 if (NOT ${CMAKE_FIND_PACKAGE_NAME}_${_paraview_component}_FOUND AND ${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED_${_paraview_component})
176 list(APPEND _paraview_missing_components
177 "${_paraview_component}")
181 if (_paraview_missing_components)
182 list(REMOVE_DUPLICATES _paraview_missing_components)
183 list(SORT _paraview_missing_components)
184 string(REPLACE ";" ", " _paraview_missing_components "${_paraview_missing_components}")
185 set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 0)
186 set("${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE"
187 "Could not find the ${CMAKE_FIND_PACKAGE_NAME} package with the following required components: ${_paraview_missing_components}.")
189 unset(_paraview_missing_components)
191 set("${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES")
192 if (NOT DEFINED "${CMAKE_FIND_PACKAGE_NAME}_FOUND")
193 # If nothing went wrong, we've successfully found the package.
194 set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 1)
195 # Build the `_LIBRARIES` variable.
196 foreach (_paraview_component IN LISTS "${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS")
197 list(APPEND "${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES"
198 "${CMAKE_FIND_PACKAGE_NAME}::${_paraview_component}")
200 unset(_paraview_component)
203 set(CMAKE_PREFIX_PATH "${${CMAKE_FIND_PACKAGE_NAME}_CMAKE_PREFIX_PATH_save}")
204 unset("${CMAKE_FIND_PACKAGE_NAME}_CMAKE_PREFIX_PATH_save")
206 set(CMAKE_MODULE_PATH "${${CMAKE_FIND_PACKAGE_NAME}_CMAKE_MODULE_PATH_save}")
207 unset(${CMAKE_FIND_PACKAGE_NAME}_CMAKE_MODULE_PATH_save)
209 # Compatibility with old code.
210 if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION)
211 set(PARAVIEW_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/paraview-use-file-deprecated.cmake")
212 elseif (${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION VERSION_LESS 5.7)
213 set(PARAVIEW_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/paraview-use-file-compat.cmake")
215 set(PARAVIEW_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/paraview-use-file-error.cmake")
218 # 5.8 renamed these variables, so provide them if 5.8 is not the minimum
220 if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION OR
221 ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION VERSION_LESS "5.8")
222 set(PARAVIEW_BUILD_QT_GUI "${PARAVIEW_USE_QT}")
223 set(PARAVIEW_ENABLE_PYTHON "${PARAVIEW_USE_PYTHON}")