paraview.cmake 9.06 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
option(PARAVIEW_DEFAULT_SYSTEM_GL "Default to using the system OpenGL" OFF)

Ben Boeckel's avatar
Ben Boeckel committed
7
8
9
10
11
12
13
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)
14
if ((UNIX AND NOT APPLE) OR paraviewsdk_enabled OR vortexfinder2_enabled)
Ben Boeckel's avatar
Ben Boeckel committed
15
16
17
  set(paraview_install_development_files TRUE)
endif ()

18
19
# Without an offscreen rendering backend, X should be used.
set(paraview_use_x ON)
20
if (WIN32 OR APPLE OR osmesa_enabled OR egl_enabled)
21
  set(paraview_use_x OFF)
22
23
endif()

24
set(paraview_all_plugins)
Ben Boeckel's avatar
Ben Boeckel committed
25
26
27
28

if (superbuild_build_phase)
  get_property(paraview_plugins GLOBAL
    PROPERTY paraview_plugins)
29
30
  get_property(paraview_plugin_dirs_external GLOBAL
    PROPERTY paraview_plugin_dirs_external)
Ben Boeckel's avatar
Ben Boeckel committed
31

32
33
  set(paraview_plugin_dirs
    "${paraview_plugin_dirs_external}")
Ben Boeckel's avatar
Ben Boeckel committed
34
35
36
37
38
39
40
41
42
43
  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
44
45
46
47
48
49

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

50
51
52
53
54
set(paraview_enable_cuda "OFF")
if(vtkm_enabled AND cuda_enabled)
  set(paraview_enable_cuda "ON")
endif()

Ben Boeckel's avatar
Ben Boeckel committed
55
56
57
58
set(PARAVIEW_EXTERNAL_PROJECTS ""
  CACHE STRING "A list of projects for ParaView to depend on")
mark_as_advanced(PARAVIEW_EXTERNAL_PROJECTS)

59
60
61
62
set(paraviews_platform_dependencies)
if (UNIX)
  if (NOT APPLE)
    list(APPEND paraviews_platform_dependencies
Ben Boeckel's avatar
Ben Boeckel committed
63
      mesa osmesa egl
64
65
66

      # Needed for fonts to work properly.
      fontconfig)
67
68
  endif ()
  list(APPEND paraviews_platform_dependencies
Chuck Atkins's avatar
Chuck Atkins committed
69
    ffmpeg libxml2 freetype mili
70
71

    # For cosmotools
72
    genericio cosmotools)
73
74
endif ()

75
set(paraview_mesa_libdir "<LIBDIR>")
76
if (PARAVIEW_DEFAULT_SYSTEM_GL AND mesa_enabled)
77
  set(paraview_mesa_libdir "<LIBDIR>/mesa")
78
79
endif ()

Ken Martin's avatar
Ken Martin committed
80
81
if (WIN32)
  list(APPEND paraviews_platform_dependencies
Ben Boeckel's avatar
Ben Boeckel committed
82
    openvr)
Ken Martin's avatar
Ken Martin committed
83
84
endif ()

85
86
87
88
89
if (USE_NONFREE_COMPONENTS AND (WIN32 OR (UNIX AND NOT APPLE)))
  list(APPEND paraviews_platform_dependencies
    visrtx)
endif ()

90
set(PARAVIEW_USE_PYTHON ${python_enabled})
91
92
93
if (python_enabled AND
    ((USE_SYSTEM_python2 AND NOT python2_FIND_LIBRARIES) OR
     (USE_SYSTEM_python3 AND NOT python3_FIND_LIBRARIES)))
94
  set(PARAVIEW_USE_PYTHON OFF)
95
96
endif()

Ben Boeckel's avatar
Ben Boeckel committed
97
if (expat_enabled)
Chuck Atkins's avatar
Chuck Atkins committed
98
99
  list(APPEND paraviews_platform_dependencies expat)
endif ()
100

101
102
103
104
105
106
107
108
109
110
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()

111
112
113
option(PARAVIEW_ENABLE_MOTIONFX "Enable MotionFX reader, if supported on platform" ON)
mark_as_advanced(PARAVIEW_ENABLE_MOTIONFX)

114
115
116
117
118
set(paraview_use_raytracing OFF)
if (ospray_enabled OR visrtx_enabled)
  set(paraview_use_raytracing ON)
endif ()

119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# 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
139
superbuild_add_project(paraview
Ben Boeckel's avatar
Ben Boeckel committed
140
  DEBUGGABLE
Ben Boeckel's avatar
Ben Boeckel committed
141
142
  DEFAULT_ON
  DEPENDS_OPTIONAL
143
    adios2 cuda boost hdf5 matplotlib mpi numpy png protobuf
144
    python python2 python3 qt5 visitbridge zlib silo las
Robert Maynard's avatar
Robert Maynard committed
145
    xdmf3 ospray vrpn vtkm tbb netcdf
146
    nlohmannjson
147
148
    paraviewgettingstartedguide
    paraviewtutorialdata paraviewweb
149
    paraviewpluginsexternal
Ben Boeckel's avatar
Ben Boeckel committed
150
    ${paraview_all_plugins}
151
    ${paraviews_platform_dependencies}
Ben Boeckel's avatar
Ben Boeckel committed
152
153
154
    ${PARAVIEW_EXTERNAL_PROJECTS}

  CMAKE_ARGS
155
    -DCMAKE_INSTALL_LIBDIR:PATH=lib
156
    -DCMAKE_INSTALL_NAME_DIR:PATH=<INSTALL_DIR>/lib
157
    -DCMAKE_MACOSX_RPATH:BOOL=OFF
158
159
160
161
162
    -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
    -DPARAVIEW_ENABLE_ADIOS2:BOOL=${adios2_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
163
    -DPARAVIEW_ENABLE_COSMOTOOLS:BOOL=${cosmotools_enabled}
164
    -DPARAVIEW_ENABLE_FFMPEG:BOOL=${ffmpeg_enabled}
165
    -DPARAVIEW_ENABLE_LAS:BOOL=${las_enabled}
166
    -DPARAVIEW_ENABLE_MOTIONFX:BOOL=${PARAVIEW_ENABLE_MOTIONFX}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
167
    -DPARAVIEW_ENABLE_VISITBRIDGE:BOOL=${visitbridge_enabled}
168
169
170
171
172
173
174
    -DPARAVIEW_ENABLE_XDMF3:BOOL=${xdmf3_enabled}
    -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=${paraview_install_development_files}
    -DPARAVIEW_PLUGIN_ENABLE_OpenVR:BOOL=${openvr_enabled}
    -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}
175
176
    -DVISIT_BUILD_READER_Mili:BOOL=${mili_enabled}
    -DVISIT_BUILD_READER_Silo:BOOL=${silo_enabled}
177
    -DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN:BOOL=${osmesa_enabled}
178
    -DVTK_MODULE_USE_EXTERNAL_ParaView_protobuf:BOOL=${protobuf_enabled}
179
    -DVTK_MODULE_USE_EXTERNAL_VTK_expat:BOOL=${expat_enabled}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
180
181
182
    -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}
183
    -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=${netcdf_enabled}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
184
185
    -DVTK_MODULE_USE_EXTERNAL_VTK_png:BOOL=${png_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_zlib:BOOL=${zlib_enabled}
186
    -DVTK_OPENGL_HAS_EGL:BOOL=${egl_enabled}
187
    -DVTK_OPENGL_HAS_OSMESA:BOOL=${osmesa_enabled}
188
    -DVTK_SMP_IMPLEMENTATION_TYPE:STRING=${paraview_smp_backend}
189
    -DVTK_USE_X:BOOL=${paraview_use_x}
Ben Boeckel's avatar
Ben Boeckel committed
190

191
    # mesa flags
192
193
    -DPARAVIEW_BUILD_MESA_LAUNCHER:BOOL=${mesa_enabled}
    -DPARAVIEW_MESA_LIBDIR:STRING=${paraview_mesa_libdir}
194

195
    # raytracing flags
196
    -DPARAVIEW_ENABLE_RAYTRACING:BOOL=${paraview_use_raytracing}
197
198
199
200
    -DVTKOSPRAY_ENABLE_DENOISER:BOOL=${openimagedenoise_enabled}
    -DVTK_ENABLE_OSPRAY:BOOL=${ospray_enabled}
    -DVTK_ENABLE_VISRTX:BOOL=${visrtx_enabled}

201
    # IndeX
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
202
    -DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX:BOOL=${nvidiaindex_enabled}
203

Ben Boeckel's avatar
Ben Boeckel committed
204
    # vrpn
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
205
206
    -DPARAVIEW_PLUGIN_ENABLE_VRPlugin:BOOL=${vrpn_enabled}
    -DPARAVIEW_PLUGIN_VRPlugin_USE_VRPN:BOOL=${vrpn_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
207

Robert Maynard's avatar
Robert Maynard committed
208
    # vtkm
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
209
    -DPARAVIEW_PLUGIN_ENABLE_VTKmFilters:BOOL=${vtkm_enabled}
Robert Maynard's avatar
Robert Maynard committed
210
    -DPARAVIEW_USE_VTKM:BOOL=${vtkm_enabled}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
211
    -DVTK_VTKM_ENABLE_CUDA:BOOL=${paraview_enable_cuda}
Robert Maynard's avatar
Robert Maynard committed
212

213
    # Web
Ben Boeckel's avatar
Ben Boeckel committed
214
    -DPARAVIEW_ENABLE_WEB:BOOL=${paraviewweb_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
215

216
217
218
    # ParFlow
    -DPARAVIEW_PLUGIN_ENABLE_ParFlow:BOOL=${nlohmannjson_enabled}

Ben Boeckel's avatar
Ben Boeckel committed
219
220
221
222
223
224
225
    # add additional plugin directories
    -DPARAVIEW_EXTERNAL_PLUGIN_DIRS:STRING=${paraview_plugin_dirs}

    ${paraview_extra_cmake_options}

    ${PARAVIEW_EXTRA_CMAKE_ARGUMENTS})

226
227
228
229
if (paraview_install_development_files)
  find_program(SED_EXECUTABLE sed)
  mark_as_advanced(SED_EXECUTABLE)
  if (SED_EXECUTABLE)
230
    superbuild_project_add_step("fixup-cmake-paths"
231
      COMMAND "${CMAKE_COMMAND}"
Ben Boeckel's avatar
Ben Boeckel committed
232
233
234
              -Dinstall_location:PATH=<INSTALL_DIR>
              -Dparaview_version:STRING=${paraview_version}
              -P "${CMAKE_CURRENT_LIST_DIR}/scripts/paraview.fixupcmakepaths.cmake"
235
      COMMENT   "Fixing paths in generated CMake files for packaging."
236
237
238
239
      DEPENDEES install
      WORKING_DIRECTORY <INSTALL_DIR>)
  endif ()
endif ()
240

241
if (paraview_SOURCE_SELECTION STREQUAL "5.3.0")
242
243
  superbuild_apply_patch(paraview fix-benchmarks
    "Fix various issues with the shipped benchmark scripts")
244
245
  superbuild_apply_patch(paraview fix-vtkconfig-part1
    "Fix various issues with the VTKConfig.cmake (Part 1)")
246
endif ()
Ben Boeckel's avatar
Ben Boeckel committed
247

248
249
250
251
252
if (paraview_SOURCE_SELECTION STREQUAL "5.5.0")
  superbuild_apply_patch(paraview fix-mpi4py
    "Fix issue with building VTK's mpi4py")
endif ()

253
254
255
if (paraview_SOURCE_SELECTION STREQUAL "5.6.0")
  superbuild_apply_patch(paraview fix-catalyst-adapter-deps
    "Fix issue with catalyst adapters and dependency search")
256
257
  superbuild_apply_patch(paraview fix-eye-dome-lighting
    "Fix eye dome lighting in parallel")
258
259
endif ()

Dan Lipsa's avatar
Dan Lipsa committed
260
261
262
263
264
if (WIN32 AND las_enabled)
  superbuild_append_flags(cxx_flags "-DBOOST_ALL_NO_LIB" PROJECT_ONLY)
endif()


Ben Boeckel's avatar
Ben Boeckel committed
265
266
267
268
if (APPLE)
  superbuild_append_flags(cxx_flags "-stdlib=libc++" PROJECT_ONLY)
  superbuild_append_flags(ld_flags "-stdlib=libc++" PROJECT_ONLY)
endif ()