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
This commit is contained in:
Ben Boeckel 2023-10-25 23:26:49 +00:00 committed by GitHub
parent 3c590ad071
commit 8e19576ec5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 241 additions and 3 deletions

View file

@ -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 @@ def nvariant_bool(feature):
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")

View file

@ -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