paraview.cmake 9.43 KB
Newer Older
Ben Boeckel's avatar
Ben Boeckel committed
1
set(PARAVIEW_EXTRA_CMAKE_ARGUMENTS ""
Ben Boeckel's avatar
Ben Boeckel committed
2
  CACHE STRING "Extra arguments to be passed to ParaView when configuring.")
Ben Boeckel's avatar
Ben Boeckel committed
3
4
mark_as_advanced(PARAVIEW_EXTRA_CMAKE_ARGUMENTS)

5
6
7
8
9
10
set(PARAVIEW_BUILD_EDITION "CANONICAL"
  CACHE STRING "Build selected ParaView Edition")
set_property(CACHE PARAVIEW_BUILD_EDITION
  PROPERTY
    STRINGS "CORE;RENDERING;CATALYST;CATALYST_RENDERING;CANONICAL")

11
12
option(PARAVIEW_DEFAULT_SYSTEM_GL "Default to using the system OpenGL" OFF)

Ben Boeckel's avatar
Ben Boeckel committed
13
14
15
16
17
18
19
set (paraview_extra_cmake_options)
if (PV_NIGHTLY_SUFFIX)
  list(APPEND paraview_extra_cmake_options
    -DPV_NIGHTLY_SUFFIX:STRING=${PV_NIGHTLY_SUFFIX})
endif ()

set(paraview_install_development_files FALSE)
20
if ((UNIX AND NOT APPLE) OR paraviewsdk_enabled OR vortexfinder2_enabled)
Ben Boeckel's avatar
Ben Boeckel committed
21
22
23
  set(paraview_install_development_files TRUE)
endif ()

24
25
# Without an offscreen rendering backend, X should be used.
set(paraview_use_x ON)
26
if (WIN32 OR APPLE OR osmesa_enabled OR egl_enabled)
27
  set(paraview_use_x OFF)
28
29
endif()

30
set(paraview_all_plugins)
Ben Boeckel's avatar
Ben Boeckel committed
31
32
33
34

if (superbuild_build_phase)
  get_property(paraview_plugins GLOBAL
    PROPERTY paraview_plugins)
35
36
  get_property(paraview_plugin_dirs_external GLOBAL
    PROPERTY paraview_plugin_dirs_external)
Ben Boeckel's avatar
Ben Boeckel committed
37

38
39
  set(paraview_plugin_dirs
    "${paraview_plugin_dirs_external}")
Ben Boeckel's avatar
Ben Boeckel committed
40
41
42
43
44
45
46
47
48
49
  foreach (paraview_plugin IN LISTS paraview_plugins)
    if (${paraview_plugin}_enabled AND TARGET "${paraview_plugin}")
      set(plugin_source_dir "<SOURCE_DIR>")
      _ep_replace_location_tags("${paraview_plugin}" plugin_source_dir)
      list(APPEND paraview_plugin_dirs
        "${plugin_source_dir}")
    endif ()
  endforeach ()
  string(REPLACE ";" "${_superbuild_list_separator}" paraview_plugin_dirs "${paraview_plugin_dirs}")
endif ()
Ben Boeckel's avatar
Ben Boeckel committed
50
51
52
53
54
55

set(paraview_smp_backend "Sequential")
if (tbb_enabled)
  set(paraview_smp_backend "TBB")
endif ()

56
57
58
59
60
set(paraview_enable_cuda "OFF")
if(vtkm_enabled AND cuda_enabled)
  set(paraview_enable_cuda "ON")
endif()

Ben Boeckel's avatar
Ben Boeckel committed
61
62
63
64
set(PARAVIEW_EXTERNAL_PROJECTS ""
  CACHE STRING "A list of projects for ParaView to depend on")
mark_as_advanced(PARAVIEW_EXTERNAL_PROJECTS)

65
66
67
68
set(paraviews_platform_dependencies)
if (UNIX)
  if (NOT APPLE)
    list(APPEND paraviews_platform_dependencies
Ben Boeckel's avatar
Ben Boeckel committed
69
      mesa osmesa egl
70
71
72

      # Needed for fonts to work properly.
      fontconfig)
73
74
  endif ()
  list(APPEND paraviews_platform_dependencies
Chuck Atkins's avatar
Chuck Atkins committed
75
    ffmpeg libxml2 freetype mili
76
77

    # For cosmotools
78
    genericio cosmotools)
79
80
endif ()

81
set(paraview_mesa_libdir "<LIBDIR>")
82
if (PARAVIEW_DEFAULT_SYSTEM_GL AND mesa_enabled)
83
  set(paraview_mesa_libdir "<LIBDIR>/mesa")
84
85
endif ()

Ken Martin's avatar
Ken Martin committed
86
87
if (WIN32)
  list(APPEND paraviews_platform_dependencies
Ben Boeckel's avatar
Ben Boeckel committed
88
    openvr)
Ken Martin's avatar
Ken Martin committed
89
90
endif ()

91
92
93
94
95
if (USE_NONFREE_COMPONENTS AND (WIN32 OR (UNIX AND NOT APPLE)))
  list(APPEND paraviews_platform_dependencies
    visrtx)
endif ()

96
set(PARAVIEW_USE_PYTHON ${python_enabled})
97
98
99
if (python_enabled AND
    ((USE_SYSTEM_python2 AND NOT python2_FIND_LIBRARIES) OR
     (USE_SYSTEM_python3 AND NOT python3_FIND_LIBRARIES)))
100
  set(PARAVIEW_USE_PYTHON OFF)
101
102
endif()

Ben Boeckel's avatar
Ben Boeckel committed
103
if (expat_enabled)
Chuck Atkins's avatar
Chuck Atkins committed
104
105
  list(APPEND paraviews_platform_dependencies expat)
endif ()
106

107
108
109
110
111
112
113
114
115
116
cmake_dependent_option(PARAVIEW_INITIALIZE_MPI_ON_CLIENT
  "Initialize MPI on client-processes by default. Can be overridden using command line arguments" ON
  "mpi_enabled" OFF)
mark_as_advanced(PARAVIEW_INITIALIZE_MPI_ON_CLIENT)

if (mpi_enabled)
  list(APPEND paraview_extra_cmake_options
    -DPARAVIEW_INITIALIZE_MPI_ON_CLIENT:BOOL=${PARAVIEW_INITIALIZE_MPI_ON_CLIENT})
endif()

117
118
119
option(PARAVIEW_ENABLE_MOTIONFX "Enable MotionFX reader, if supported on platform" ON)
mark_as_advanced(PARAVIEW_ENABLE_MOTIONFX)

120
121
122
123
124
set(paraview_use_raytracing OFF)
if (ospray_enabled OR visrtx_enabled)
  set(paraview_use_raytracing ON)
endif ()

125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# add an option to override ParaView shared-libs flag.
set(BUILD_SHARED_LIBS_paraview "<same>"
  CACHE STRING "The shared/static build flag for the paraview project.")
set_property(CACHE "BUILD_SHARED_LIBS_paraview"
  PROPERTY
    STRINGS "<same>;ON;OFF")
get_property(build_shared_options
  CACHE     "BUILD_SHARED_LIBS_paraview"
  PROPERTY  STRINGS)
if (NOT BUILD_SHARED_LIBS_paraview IN_LIST build_shared_options)
  string(REPLACE ";" ", " build_shared_options "${build_shared_options}")
  message(FATAL_ERROR "BUILD_SHARED_LIBS_paraview must be one of: ${build_shared_options}.")
endif ()

if (BUILD_SHARED_LIBS_paraview STREQUAL "<same>")
  set(paraview_build_shared_libs "${BUILD_SHARED_LIBS}")
else ()
  set(paraview_build_shared_libs "${BUILD_SHARED_LIBS_paraview}")
endif ()

Ben Boeckel's avatar
Ben Boeckel committed
145
superbuild_add_project(paraview
Ben Boeckel's avatar
Ben Boeckel committed
146
  DEBUGGABLE
Ben Boeckel's avatar
Ben Boeckel committed
147
148
  DEFAULT_ON
  DEPENDS_OPTIONAL
149
    adios2 cuda boost hdf5 matplotlib mpi numpy png protobuf
150
    python python2 python3 qt5 visitbridge zlib silo las
Robert Maynard's avatar
Robert Maynard committed
151
    xdmf3 ospray vrpn vtkm tbb netcdf
152
    nlohmannjson
153
154
    paraviewgettingstartedguide
    paraviewtutorialdata paraviewweb
155
    paraviewpluginsexternal
Ben Boeckel's avatar
Ben Boeckel committed
156
    ${paraview_all_plugins}
157
    ${paraviews_platform_dependencies}
Ben Boeckel's avatar
Ben Boeckel committed
158
159
160
    ${PARAVIEW_EXTERNAL_PROJECTS}

  CMAKE_ARGS
161
    -DCMAKE_INSTALL_LIBDIR:PATH=lib
162
    -DCMAKE_INSTALL_NAME_DIR:PATH=<INSTALL_DIR>/lib
163
    -DCMAKE_MACOSX_RPATH:BOOL=OFF
164
165
166
167
    -DHDF5_NO_FIND_PACKAGE_CONFIG_FILE:BOOL=ON
    -DPARAVIEW_BUILD_LEGACY_REMOVE:BOOL=ON
    -DPARAVIEW_BUILD_SHARED_LIBS:BOOL=${paraview_build_shared_libs}
    -DPARAVIEW_BUILD_TESTING:BOOL=OFF
168
    -DPARAVIEW_BUILD_EDITION:STRING=${PARAVIEW_BUILD_EDITION}
169
    -DPARAVIEW_ENABLE_ADIOS2:BOOL=${adios2_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
170
    -DPARAVIEW_ENABLE_COSMOTOOLS:BOOL=${cosmotools_enabled}
171
    -DPARAVIEW_ENABLE_FFMPEG:BOOL=${ffmpeg_enabled}
172
    -DPARAVIEW_ENABLE_LAS:BOOL=${las_enabled}
173
    -DPARAVIEW_ENABLE_MOTIONFX:BOOL=${PARAVIEW_ENABLE_MOTIONFX}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
174
    -DPARAVIEW_ENABLE_VISITBRIDGE:BOOL=${visitbridge_enabled}
175
176
177
    -DPARAVIEW_ENABLE_XDMF3:BOOL=${xdmf3_enabled}
    -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=${paraview_install_development_files}
    -DPARAVIEW_PLUGIN_ENABLE_OpenVR:BOOL=${openvr_enabled}
178
179
    # No netcdftime module in the package.
    -DPARAVIEW_PLUGIN_ENABLE_NetCDFTimeAnnotationPlugin:BOOL=OFF
180
181
182
183
    -DPARAVIEW_PYTHON_VERSION:STRING=${python_version}
    -DPARAVIEW_USE_MPI:BOOL=${mpi_enabled}
    -DPARAVIEW_USE_PYTHON:BOOL=${PARAVIEW_USE_PYTHON}
    -DPARAVIEW_USE_QT:BOOL=${qt5_enabled}
184
185
    -DVISIT_BUILD_READER_Mili:BOOL=${mili_enabled}
    -DVISIT_BUILD_READER_Silo:BOOL=${silo_enabled}
186
    -DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN:BOOL=${osmesa_enabled}
187
    -DVTK_MODULE_USE_EXTERNAL_ParaView_protobuf:BOOL=${protobuf_enabled}
188
    -DVTK_MODULE_USE_EXTERNAL_VTK_expat:BOOL=${expat_enabled}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
189
190
191
    -DVTK_MODULE_USE_EXTERNAL_VTK_freetype:BOOL=${freetype_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=${hdf5_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=${libxml2_enabled}
192
    -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=${netcdf_enabled}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
193
194
    -DVTK_MODULE_USE_EXTERNAL_VTK_png:BOOL=${png_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_zlib:BOOL=${zlib_enabled}
195
    -DVTK_OPENGL_HAS_EGL:BOOL=${egl_enabled}
196
    -DVTK_OPENGL_HAS_OSMESA:BOOL=${osmesa_enabled}
197
    -DVTK_SMP_IMPLEMENTATION_TYPE:STRING=${paraview_smp_backend}
198
    -DVTK_USE_X:BOOL=${paraview_use_x}
Ben Boeckel's avatar
Ben Boeckel committed
199

200
    # mesa flags
201
202
    -DPARAVIEW_BUILD_MESA_LAUNCHER:BOOL=${mesa_enabled}
    -DPARAVIEW_MESA_LIBDIR:STRING=${paraview_mesa_libdir}
203

204
    # raytracing flags
205
    -DPARAVIEW_ENABLE_RAYTRACING:BOOL=${paraview_use_raytracing}
206
207
208
209
    -DVTKOSPRAY_ENABLE_DENOISER:BOOL=${openimagedenoise_enabled}
    -DVTK_ENABLE_OSPRAY:BOOL=${ospray_enabled}
    -DVTK_ENABLE_VISRTX:BOOL=${visrtx_enabled}

210
    # IndeX
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
211
    -DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX:BOOL=${nvidiaindex_enabled}
212

Ben Boeckel's avatar
Ben Boeckel committed
213
    # vrpn
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
214
215
    -DPARAVIEW_PLUGIN_ENABLE_VRPlugin:BOOL=${vrpn_enabled}
    -DPARAVIEW_PLUGIN_VRPlugin_USE_VRPN:BOOL=${vrpn_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
216

Robert Maynard's avatar
Robert Maynard committed
217
    # vtkm
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
218
    -DPARAVIEW_PLUGIN_ENABLE_VTKmFilters:BOOL=${vtkm_enabled}
Robert Maynard's avatar
Robert Maynard committed
219
    -DPARAVIEW_USE_VTKM:BOOL=${vtkm_enabled}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
220
    -DVTK_VTKM_ENABLE_CUDA:BOOL=${paraview_enable_cuda}
Robert Maynard's avatar
Robert Maynard committed
221

222
    # Web
Ben Boeckel's avatar
Ben Boeckel committed
223
    -DPARAVIEW_ENABLE_WEB:BOOL=${paraviewweb_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
224

225
226
227
    # ParFlow
    -DPARAVIEW_PLUGIN_ENABLE_ParFlow:BOOL=${nlohmannjson_enabled}

Ben Boeckel's avatar
Ben Boeckel committed
228
229
230
231
232
233
234
    # add additional plugin directories
    -DPARAVIEW_EXTERNAL_PLUGIN_DIRS:STRING=${paraview_plugin_dirs}

    ${paraview_extra_cmake_options}

    ${PARAVIEW_EXTRA_CMAKE_ARGUMENTS})

235
236
237
238
if (paraview_install_development_files)
  find_program(SED_EXECUTABLE sed)
  mark_as_advanced(SED_EXECUTABLE)
  if (SED_EXECUTABLE)
239
    superbuild_project_add_step("fixup-cmake-paths"
240
      COMMAND "${CMAKE_COMMAND}"
Ben Boeckel's avatar
Ben Boeckel committed
241
242
243
              -Dinstall_location:PATH=<INSTALL_DIR>
              -Dparaview_version:STRING=${paraview_version}
              -P "${CMAKE_CURRENT_LIST_DIR}/scripts/paraview.fixupcmakepaths.cmake"
244
      COMMENT   "Fixing paths in generated CMake files for packaging."
245
246
247
248
      DEPENDEES install
      WORKING_DIRECTORY <INSTALL_DIR>)
  endif ()
endif ()
249

250
if (paraview_SOURCE_SELECTION STREQUAL "5.3.0")
251
252
  superbuild_apply_patch(paraview fix-benchmarks
    "Fix various issues with the shipped benchmark scripts")
253
254
  superbuild_apply_patch(paraview fix-vtkconfig-part1
    "Fix various issues with the VTKConfig.cmake (Part 1)")
255
endif ()
Ben Boeckel's avatar
Ben Boeckel committed
256

257
258
259
260
261
if (paraview_SOURCE_SELECTION STREQUAL "5.5.0")
  superbuild_apply_patch(paraview fix-mpi4py
    "Fix issue with building VTK's mpi4py")
endif ()

262
263
264
if (paraview_SOURCE_SELECTION STREQUAL "5.6.0")
  superbuild_apply_patch(paraview fix-catalyst-adapter-deps
    "Fix issue with catalyst adapters and dependency search")
265
266
  superbuild_apply_patch(paraview fix-eye-dome-lighting
    "Fix eye dome lighting in parallel")
267
268
endif ()

Dan Lipsa's avatar
Dan Lipsa committed
269
270
271
272
273
if (WIN32 AND las_enabled)
  superbuild_append_flags(cxx_flags "-DBOOST_ALL_NO_LIB" PROJECT_ONLY)
endif()


Ben Boeckel's avatar
Ben Boeckel committed
274
275
276
277
if (APPLE)
  superbuild_append_flags(cxx_flags "-stdlib=libc++" PROJECT_ONLY)
  superbuild_append_flags(ld_flags "-stdlib=libc++" PROJECT_ONLY)
endif ()