paraview.cmake 8.87 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)
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
50
51
52
53
54
55
56
57
58
59
60
61

if (NOT CMAKE_CONFIGURATION_TYPES AND NOT WIN32)
  set(PARAVIEW_BUILD_TYPE ""
    CACHE STRING "ParaView's build mode")
  mark_as_advanced(PARAVIEW_BUILD_TYPE)
  if (NOT PARAVIEW_BUILD_TYPE)
    set(PARAVIEW_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
  endif ()

  set(CMAKE_BUILD_TYPE_save "${CMAKE_BUILD_TYPE}")
  set(CMAKE_BUILD_TYPE "${PARAVIEW_BUILD_TYPE}")
endif ()

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

62
63
64
65
66
set(paraview_enable_cuda "OFF")
if(vtkm_enabled AND cuda_enabled)
  set(paraview_enable_cuda "ON")
endif()

Ben Boeckel's avatar
Ben Boeckel committed
67
68
69
70
set(PARAVIEW_EXTERNAL_PROJECTS ""
  CACHE STRING "A list of projects for ParaView to depend on")
mark_as_advanced(PARAVIEW_EXTERNAL_PROJECTS)

71
option(PARAVIEW_FREEZE_PYTHON "Freeze Python packages and modules into the application" OFF)
Ben Boeckel's avatar
Ben Boeckel committed
72

73
74
75
76
set(paraviews_platform_dependencies)
if (UNIX)
  if (NOT APPLE)
    list(APPEND paraviews_platform_dependencies
Ben Boeckel's avatar
Ben Boeckel committed
77
      mesa osmesa egl
78

79
80
      boxlib

81
82
      # Needed for fonts to work properly.
      fontconfig)
83
84
  endif ()
  list(APPEND paraviews_platform_dependencies
Chuck Atkins's avatar
Chuck Atkins committed
85
    ffmpeg libxml2 freetype mili
86
87

    # For cosmotools
88
    genericio cosmotools)
89
90
endif ()

91
set(paraview_mesa_libdir "<LIBDIR>")
92
if (PARAVIEW_DEFAULT_SYSTEM_GL AND mesa_enabled)
93
  set(paraview_mesa_libdir "<LIBDIR>/mesa")
94
95
endif ()

Ken Martin's avatar
Ken Martin committed
96
97
if (WIN32)
  list(APPEND paraviews_platform_dependencies
Ben Boeckel's avatar
Ben Boeckel committed
98
    openvr)
Ken Martin's avatar
Ken Martin committed
99
100
endif ()

101
102
103
104
105
if (USE_NONFREE_COMPONENTS AND (WIN32 OR (UNIX AND NOT APPLE)))
  list(APPEND paraviews_platform_dependencies
    visrtx)
endif ()

106
set(PARAVIEW_ENABLE_PYTHON ${python_enabled})
107
108
109
if (python_enabled AND
    ((USE_SYSTEM_python2 AND NOT python2_FIND_LIBRARIES) OR
     (USE_SYSTEM_python3 AND NOT python3_FIND_LIBRARIES)))
110
111
112
  set(PARAVIEW_ENABLE_PYTHON OFF)
endif()

Ben Boeckel's avatar
Ben Boeckel committed
113
if (expat_enabled)
Chuck Atkins's avatar
Chuck Atkins committed
114
115
  list(APPEND paraviews_platform_dependencies expat)
endif ()
116

117
118
119
120
121
122
123
124
125
126
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()

127
128
129
option(PARAVIEW_ENABLE_MOTIONFX "Enable MotionFX reader, if supported on platform" ON)
mark_as_advanced(PARAVIEW_ENABLE_MOTIONFX)

130
131
132
133
134
set(paraview_use_raytracing OFF)
if (ospray_enabled OR visrtx_enabled)
  set(paraview_use_raytracing ON)
endif ()

Ben Boeckel's avatar
Ben Boeckel committed
135
superbuild_add_project(paraview
Ben Boeckel's avatar
Ben Boeckel committed
136
  DEBUGGABLE
Ben Boeckel's avatar
Ben Boeckel committed
137
  DEFAULT_ON
Ben Boeckel's avatar
Ben Boeckel committed
138
139
  DEPENDS
    hdf5
Ben Boeckel's avatar
Ben Boeckel committed
140
  DEPENDS_OPTIONAL
Chuck Atkins's avatar
Chuck Atkins committed
141
    adios2 cuda boost matplotlib mpi numpy png
142
    python python2 python3 qt5 visitbridge zlib silo las
Robert Maynard's avatar
Robert Maynard committed
143
    xdmf3 ospray vrpn vtkm tbb netcdf
144
    nlohmannjson
145
146
    paraviewgettingstartedguide
    paraviewtutorialdata paraviewweb
147
    paraviewpluginsexternal
Ben Boeckel's avatar
Ben Boeckel committed
148
    ${paraview_all_plugins}
149
    ${paraviews_platform_dependencies}
Ben Boeckel's avatar
Ben Boeckel committed
150
151
152
    ${PARAVIEW_EXTERNAL_PROJECTS}

  CMAKE_ARGS
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
153
154
    -DPARAVIEW_BUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
    -DPARAVIEW_BUILD_TESTING:BOOL=OFF
155
    -DCMAKE_INSTALL_LIBDIR:PATH=lib
156
    -DCMAKE_INSTALL_NAME_DIR:PATH=<INSTALL_DIR>/lib
157
    -DCMAKE_MACOSX_RPATH:BOOL=OFF
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
158
    -DPARAVIEW_PLUGIN_ENABLE_OpenVR:BOOL=${openvr_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
159
    -DPARAVIEW_BUILD_QT_GUI:BOOL=${qt5_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
160
    -DPARAVIEW_ENABLE_FFMPEG:BOOL=${ffmpeg_enabled}
161
    -DPARAVIEW_ENABLE_PYTHON:BOOL=${PARAVIEW_ENABLE_PYTHON}
162
    -DPARAVIEW_PYTHON_VERSION:STRING=${python_version}
Ben Boeckel's avatar
Ben Boeckel committed
163
164
    -DPARAVIEW_ENABLE_COSMOTOOLS:BOOL=${cosmotools_enabled}
    -DPARAVIEW_ENABLE_XDMF3:BOOL=${xdmf3_enabled}
165
    -DPARAVIEW_ENABLE_LAS:BOOL=${las_enabled}
Chuck Atkins's avatar
Chuck Atkins committed
166
    -DPARAVIEW_ENABLE_ADIOS2:BOOL=${adios2_enabled}
167
    -DPARAVIEW_ENABLE_MOTIONFX:BOOL=${PARAVIEW_ENABLE_MOTIONFX}
Ben Boeckel's avatar
Ben Boeckel committed
168
    -DPARAVIEW_USE_MPI:BOOL=${mpi_enabled}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
169
    -DPARAVIEW_ENABLE_VISITBRIDGE:BOOL=${visitbridge_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
170
    -DVISIT_BUILD_READER_Boxlib3D:BOOL=${boxlib_enabled}
171
172
    -DVISIT_BUILD_READER_Mili:BOOL=${mili_enabled}
    -DVISIT_BUILD_READER_Silo:BOOL=${silo_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
173
174
    -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=${paraview_install_development_files}
    -DPARAVIEW_FREEZE_PYTHON:BOOL=${PARAVIEW_FREEZE_PYTHON}
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
175
176
177
    -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=${netcdf_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_freetype:BOOL=${freetype_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=${hdf5_enabled}
178
    -DHDF5_NO_FIND_PACKAGE_CONFIG_FILE:BOOL=ON
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
179
180
181
182
    -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=${libxml2_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_png:BOOL=${png_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_zlib:BOOL=${zlib_enabled}
    -DVTK_MODULE_USE_EXTERNAL_VTK_expat:BOOL=${expat_enabled}
Ben Boeckel's avatar
Ben Boeckel committed
183
    -DVTK_SMP_IMPLEMENTATION_TYPE:STRING=${paraview_smp_backend}
184
    -DVTK_LEGACY_REMOVE:BOOL=ON
185
186
    -DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN:BOOL=${osmesa_enabled}
    -DVTK_OPENGL_HAS_EGL:BOOL=${egl_enabled}
187
    -DVTK_OPENGL_HAS_OSMESA:BOOL=${osmesa_enabled}
188
    -DVTK_USE_X:BOOL=${paraview_use_x}
Ben Boeckel's avatar
Ben Boeckel committed
189

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

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

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

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

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

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

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

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

    ${paraview_extra_cmake_options}

    ${PARAVIEW_EXTRA_CMAKE_ARGUMENTS})

if (DEFINED CMAKE_BUILD_TYPE_save)
  set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE_save}")
endif ()
228
229
230
231
232

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

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

251
252
253
254
255
if (paraview_SOURCE_SELECTION STREQUAL "5.5.0")
  superbuild_apply_patch(paraview fix-mpi4py
    "Fix issue with building VTK's mpi4py")
endif ()

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

Dan Lipsa's avatar
Dan Lipsa committed
263
264
265
266
267
if (WIN32 AND las_enabled)
  superbuild_append_flags(cxx_flags "-DBOOST_ALL_NO_LIB" PROJECT_ONLY)
endif()


Ben Boeckel's avatar
Ben Boeckel committed
268
269
270
271
if (APPLE)
  superbuild_append_flags(cxx_flags "-stdlib=libc++" PROJECT_ONLY)
  superbuild_append_flags(ld_flags "-stdlib=libc++" PROJECT_ONLY)
endif ()