summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Boeckel <mathstuf@users.noreply.github.com>2023-10-25 23:26:49 +0000
committerGitHub <noreply@github.com>2023-10-25 16:26:49 -0700
commit8e19576ec5ab26dc435938c20686387e850323ba (patch)
treeb5afebea9dbe6e27e5ead2c0ef3a2213369e99e5
parent3c590ad071938fd8e524ff7a9039101fe90fa385 (diff)
downloadspack-8e19576ec5ab26dc435938c20686387e850323ba.tar.gz
spack-8e19576ec5ab26dc435938c20686387e850323ba.tar.bz2
spack-8e19576ec5ab26dc435938c20686387e850323ba.tar.xz
spack-8e19576ec5ab26dc435938c20686387e850323ba.zip
Paraview 5.12 prep (#40527)
* paraview: rebase the adios2 patch for 5.12-to-be * paraview: disable fastfloat and token for 5.12-to-be * paraview: require older protobuf for 5.12 as well * paraview: require C++11-supporting protobuf for `master` too
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py14
-rw-r--r--var/spack/repos/builtin/packages/paraview/vtk-adios2-module-no-kit-5.12.patch230
2 files changed, 241 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 5760a9d68d..5ca64f29c0 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -226,8 +226,10 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
depends_on("protobuf@3.4:3.18", when="@:5.10%xl")
depends_on("protobuf@3.4:3.18", when="@:5.10%xl_r")
# protobuf requires newer abseil-cpp, which in turn requires C++14,
- # but paraview uses C++11 by default
- depends_on("protobuf@3.4:3.21", when="@:5.11")
+ # but paraview uses C++11 by default. Use for 5.11+ until ParaView updates
+ # its C++ standard level.
+ depends_on("protobuf@3.4:3.21", when="@5.11:")
+ depends_on("protobuf@3.4:3.21", when="@master")
depends_on("libxml2")
depends_on("lz4")
depends_on("xz")
@@ -280,7 +282,9 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
# Fix IOADIOS2 module to work with kits
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8653
- patch("vtk-adios2-module-no-kit.patch", when="@5.8:")
+ patch("vtk-adios2-module-no-kit.patch", when="@5.8:5.11")
+ # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8653
+ patch("vtk-adios2-module-no-kit-5.12.patch", when="@5.12:")
# Patch for paraview 5.9.0%xl_r
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7591
@@ -426,6 +430,10 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
self.define_from_variant("VISIT_BUILD_READER_Silo", "visitbridge"),
]
+ if spec.satisfies("@5.12:"):
+ cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_fast_float:BOOL=OFF")
+ cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_token:BOOL=OFF")
+
if spec.satisfies("@5.11:"):
cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_verdict:BOOL=OFF")
diff --git a/var/spack/repos/builtin/packages/paraview/vtk-adios2-module-no-kit-5.12.patch b/var/spack/repos/builtin/packages/paraview/vtk-adios2-module-no-kit-5.12.patch
new file mode 100644
index 0000000000..34a98eac47
--- /dev/null
+++ b/var/spack/repos/builtin/packages/paraview/vtk-adios2-module-no-kit-5.12.patch
@@ -0,0 +1,230 @@
+diff --git a/VTK/IO/ADIOS2/CMakeLists.txt b/VTK/IO/ADIOS2/CMakeLists.txt
+index 86c6d49cc4f..07b1d4fe0ef 100644
+--- a/VTK/IO/ADIOS2/CMakeLists.txt
++++ b/VTK/IO/ADIOS2/CMakeLists.txt
+@@ -1,9 +1,9 @@
+ vtk_module_find_package(PRIVATE_IF_SHARED
+ PACKAGE ADIOS2
+ VERSION 2.4)
+-if (VTK_USE_MPI AND NOT ADIOS2_HAVE_MPI)
++if (TARGET VTK::ParallelMPI AND NOT ADIOS2_HAVE_MPI)
+ message(FATAL_ERROR "VTK built with MPI requires ADIOS2 built with MPI")
+-elseif(NOT VTK_USE_MPI AND ADIOS2_HAVE_MPI)
++elseif(NOT TARGET VTK::ParallelMPI AND ADIOS2_HAVE_MPI)
+ message(FATAL_ERROR "VTK built without MPI requires ADIOS2 built without MPI")
+ endif()
+
+@@ -18,38 +18,30 @@ set(classes_core vtkADIOS2CoreImageReader)
+ set(private_classes_core Core/vtkADIOS2CoreArraySelection)
+ set(private_headers_core Core/vtkADIOS2CoreTypeTraits.h)
+ set(private_templates_core)
+-set(vtk_io_adios2_core_enabled TRUE CACHE INTERNAL "" FORCE)
+
+-if (vtk_io_adios2_core_enabled)
+- list(APPEND classes ${classes_core})
+- list(APPEND private_classes ${private_classes_core})
+- list(APPEND private_headers ${private_headers_core})
+- list(APPEND private_templates ${private_templates_core})
+-endif()
++list(APPEND classes ${classes_core})
++list(APPEND private_classes ${private_classes_core})
++list(APPEND private_headers ${private_headers_core})
++list(APPEND private_templates ${private_templates_core})
++
++# Build VTX Schema for Parallel
++if (TARGET VTK::ParallelMPI)
++ set(classes_vtx vtkADIOS2VTXReader)
++ set(private_classes_vtx
++ VTX/VTXSchemaManager
++ VTX/common/VTXDataArray
++ VTX/common/VTXHelper
++ VTX/schema/VTXSchema
++ VTX/schema/vtk/VTXvtkBase
++ VTX/schema/vtk/VTXvtkVTI
++ VTX/schema/vtk/VTXvtkVTU)
++ set(private_headers_vtx VTX/common/VTXTypes.h)
++ set(private_templates_vtx
++ VTX/common/VTXHelper.txx
++ VTX/schema/VTXSchema.txx
++ VTX/schema/vtk/VTXvtkVTI.txx
++ VTX/schema/vtk/VTXvtkVTU.txx)
+
+-set(classes_vtx vtkADIOS2VTXReader)
+-set(private_classes_vtx
+- VTX/VTXSchemaManager
+- VTX/common/VTXDataArray
+- VTX/common/VTXHelper
+- VTX/schema/VTXSchema
+- VTX/schema/vtk/VTXvtkBase
+- VTX/schema/vtk/VTXvtkVTI
+- VTX/schema/vtk/VTXvtkVTU)
+-set(private_headers_vtx VTX/common/VTXTypes.h)
+-set(private_templates_vtx
+- VTX/common/VTXHelper.txx
+- VTX/schema/VTXSchema.txx
+- VTX/schema/vtk/VTXvtkVTI.txx
+- VTX/schema/vtk/VTXvtkVTU.txx)
+-
+-if (VTK_USE_MPI)
+- set(vtk_io_adios2_vtx_enabled TRUE CACHE INTERNAL "" FORCE)
+-else ()
+- set(vtk_io_adios2_vtx_enabled FALSE CACHE INTERNAL "" FORCE)
+-endif()
+-
+-if (vtk_io_adios2_vtx_enabled)
+ list(APPEND classes ${classes_vtx})
+ list(APPEND private_classes ${private_classes_vtx})
+ list(APPEND private_headers ${private_headers_vtx})
+@@ -63,10 +55,6 @@ vtk_module_add_module(VTK::IOADIOS2
+ PRIVATE_TEMPLATES ${private_templates})
+ vtk_module_link(VTK::IOADIOS2 PRIVATE adios2::adios2)
+
+-if (ADIOS2_HAVE_MPI)
+- vtk_module_definitions(VTK::IOADIOS2 PRIVATE IOADIOS2_HAVE_MPI)
+-endif ()
+-
+ if (ADIOS2_VERSION VERSION_GREATER_EQUAL "2.8.0")
+ vtk_module_definitions(VTK::IOADIOS2 PRIVATE IOADIOS2_BP5_RANDOM_ACCESS)
+ endif ()
+diff --git a/VTK/IO/ADIOS2/Testing/Cxx/CMakeLists.txt b/VTK/IO/ADIOS2/Testing/Cxx/CMakeLists.txt
+index 1534a1e7271..29c51970daf 100644
+--- a/VTK/IO/ADIOS2/Testing/Cxx/CMakeLists.txt
++++ b/VTK/IO/ADIOS2/Testing/Cxx/CMakeLists.txt
+@@ -2,40 +2,34 @@ find_package(ADIOS2 2.4 REQUIRED
+ COMPONENTS CXX
+ OPTIONAL_COMPONENTS MPI)
+
+-if (ADIOS2_HAVE_MPI)
+- if (vtk_io_adios2_core_enabled)
+- set(TestADIOS2BPReaderSingleTimeStep_NUMPROCS 2)
++if (TARGET VTK::ParallelMPI)
++ set(TestADIOS2BPReaderSingleTimeStep_NUMPROCS 2)
+ # For now vtkMultiBlockVolumeMapper does not support rendering in parallel
+- set(TestADIOS2BPReaderMultiTimeSteps_NUMPROCS 2)
+- set(TestADIOS2BPReaderMultiTimeSteps2D_NUMPROCS 2)
+- vtk_add_test_mpi(vtkIOADIOS2CxxTests-MPI mpiTests TESTING_DATA
+- TestADIOS2BPReaderMPISingleTimeStep.cxx
+- TestADIOS2BPReaderMPIMultiTimeSteps3D.cxx,NO_VALID
+- TestADIOS2BPReaderMPIMultiTimeSteps2D.cxx)
+- vtk_test_cxx_executable(vtkIOADIOS2CxxTests-MPI mpiTests)
+- endif()
++ set(TestADIOS2BPReaderMultiTimeSteps_NUMPROCS 2)
++ set(TestADIOS2BPReaderMultiTimeSteps2D_NUMPROCS 2)
++ vtk_add_test_mpi(vtkIOADIOS2CxxTests-MPI mpiTests TESTING_DATA
++ TestADIOS2BPReaderMPISingleTimeStep.cxx
++ TestADIOS2BPReaderMPIMultiTimeSteps3D.cxx,NO_VALID
++ TestADIOS2BPReaderMPIMultiTimeSteps2D.cxx)
++ vtk_test_cxx_executable(vtkIOADIOS2CxxTests-MPI mpiTests)
+
+ # VTX tests
+- if (vtk_io_adios2_vtx_enabled)
+- vtk_add_test_cxx(vtkIOADIOS2VTXCxxTests tests TESTING_DATA NO_OUTPUT
+- UnitTestIOADIOS2VTX.cxx,NO_VALID
+- #TestIOADIOS2VTX_VTI3D.cxx,
+- TestIOADIOS2VTX_VTI3DRendering.cxx,NO_VALID
+- #TestIOADIOS2VTX_VTU3D.cxx,NO_VALID
+- TestIOADIOS2VTX_VTU3DRendering.cxx,NO_VALID
+- TestIOADIOS2VTX_VTU2DRendering.cxx,NO_VALID
+- TestIOADIOS2VTX_VTU1DRendering.cxx,NO_VALID)
++ vtk_add_test_cxx(vtkIOADIOS2VTXCxxTests tests TESTING_DATA NO_OUTPUT
++ UnitTestIOADIOS2VTX.cxx,NO_VALID
++ #TestIOADIOS2VTX_VTI3D.cxx,
++ TestIOADIOS2VTX_VTI3DRendering.cxx,NO_VALID
++ #TestIOADIOS2VTX_VTU3D.cxx,NO_VALID
++ TestIOADIOS2VTX_VTU3DRendering.cxx,NO_VALID
++ TestIOADIOS2VTX_VTU2DRendering.cxx,NO_VALID
++ TestIOADIOS2VTX_VTU1DRendering.cxx,NO_VALID)
+
+- vtk_test_cxx_executable(vtkIOADIOS2VTXCxxTests tests)
+- target_link_libraries(vtkIOADIOS2VTXCxxTests PUBLIC adios2::adios2)
+- endif ()
++ vtk_test_cxx_executable(vtkIOADIOS2VTXCxxTests tests)
++ target_link_libraries(vtkIOADIOS2VTXCxxTests PUBLIC adios2::adios2)
+ else ()
+- if (vtk_io_adios2_core_enabled)
+- vtk_add_test_cxx(vtkIOADIOS2CxxTests tests TESTING_DATA
+- TestADIOS2BPReaderSingleTimeStep.cxx
+- TestADIOS2BPReaderMultiTimeSteps3D.cxx
+- TestADIOS2BPReaderMultiTimeSteps2D.cxx)
++ vtk_add_test_cxx(vtkIOADIOS2CxxTests tests TESTING_DATA
++ TestADIOS2BPReaderSingleTimeStep.cxx
++ TestADIOS2BPReaderMultiTimeSteps3D.cxx
++ TestADIOS2BPReaderMultiTimeSteps2D.cxx)
+
+- vtk_test_cxx_executable(vtkIOADIOS2CxxTests tests)
+- endif ()
++ vtk_test_cxx_executable(vtkIOADIOS2CxxTests tests)
+ endif ()
+diff --git a/VTK/IO/ADIOS2/vtk.module b/VTK/IO/ADIOS2/vtk.module
+index 5069bd828b0..fe37260eb6d 100644
+--- a/VTK/IO/ADIOS2/vtk.module
++++ b/VTK/IO/ADIOS2/vtk.module
+@@ -2,8 +2,6 @@ NAME
+ VTK::IOADIOS2
+ LIBRARY_NAME
+ vtkIOADIOS2
+-KIT
+- VTK::IO
+ SPDX_LICENSE_IDENTIFIER
+ LicenseRef-BSD-3-Clause-Sandia-USGov
+ SPDX_COPYRIGHT_TEXT
+diff --git a/VTK/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx b/VTK/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx
+index 6ba4d25230d..c209fd905d5 100644
+--- a/VTK/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx
++++ b/VTK/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx
+@@ -28,7 +28,7 @@
+ #include "vtkLongLongArray.h"
+ #include "vtkMultiBlockDataSet.h"
+ #include "vtkMultiPieceDataSet.h"
+-#include "vtkMultiProcessController.h"
++#include "vtkMultiProcessController.h" // For the MPI controller member
+ #include "vtkNew.h"
+ #include "vtkObjectFactory.h"
+ #include "vtkPointData.h"
+@@ -46,7 +46,7 @@
+ #include "vtkUnstructuredGrid.h"
+ #include "vtksys/SystemTools.hxx"
+
+-#ifdef IOADIOS2_HAVE_MPI
++#if VTK_MODULE_ENABLE_VTK_ParallelMPI
+ #include "vtkMPI.h"
+ #include "vtkMPIController.h"
+ #endif
+@@ -126,7 +126,7 @@ vtkNew<vtkMultiPieceDataSet> vtkADIOS2CoreImageReader::vtkADIOS2CoreImageReaderI
+ int myLen = static_cast<int>(ibds->GetNumberOfBlocks());
+ int* allLens{ nullptr };
+ int procId{ 0 }, numProcess{ 0 };
+-#ifdef IOADIOS2_HAVE_MPI
++#if VTK_MODULE_ENABLE_VTK_ParallelMPI
+ auto ctrl = vtkMultiProcessController::GetGlobalController();
+ if (ctrl)
+ {
+@@ -286,7 +286,7 @@ const vtkADIOS2CoreImageReader::StringToParams& vtkADIOS2CoreImageReader::GetAva
+ //------------------------------------------------------------------------------
+ void vtkADIOS2CoreImageReader::SetController(vtkMultiProcessController* controller)
+ {
+-#ifdef IOADIOS2_HAVE_MPI
++#if VTK_MODULE_ENABLE_VTK_ParallelMPI
+ vtkMPIController* mpiController = vtkMPIController::SafeDownCast(controller);
+ if (controller && !mpiController)
+ {
+@@ -337,7 +337,7 @@ bool vtkADIOS2CoreImageReader::OpenAndReadMetaData()
+ // Initialize the ADIOS2 data structures
+ if (!this->Impl->Adios)
+ {
+-#ifdef IOADIOS2_HAVE_MPI
++#if VTK_MODULE_ENABLE_VTK_ParallelMPI
+ // Make sure the ADIOS subsystem is initialized before processing any
+ // sort of request.
+ if (!this->Controller)
+@@ -910,7 +910,7 @@ void vtkADIOS2CoreImageReader::CalculateWorkDistribution(const std::string& varN
+ auto var = this->Impl->AdiosIO.InquireVariable<T>(varName);
+ size_t blockNum = this->Impl->BpReader.BlocksInfo(var, this->Impl->RequestStep).size();
+
+-#ifdef IOADIOS2_HAVE_MPI
++#if VTK_MODULE_ENABLE_VTK_ParallelMPI
+ size_t rank = static_cast<size_t>(this->Controller->GetLocalProcessId());
+ size_t procs = static_cast<size_t>(this->Controller->GetNumberOfProcesses());
+ #else
+--
+GitLab