From 8776250edb999acefa009741d015c2b059d3f1e9 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Wed, 10 Apr 2024 12:54:24 +0200
Subject: [PATCH] Bump minimum VTK to 9.3

---
 .gitignore                                    |  1 +
 .../cmake/DependenciesExternalProject.cmake   | 38 +++++++++++++++----
 scripts/cmake/loguru.patch                    | 10 -----
 web/data/versions.json                        |  3 +-
 4 files changed, 34 insertions(+), 18 deletions(-)
 delete mode 100644 scripts/cmake/loguru.patch

diff --git a/.gitignore b/.gitignore
index bc89e16a442..d174388ea61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@ Tests/Data/_out
 web/.netlify
 
 CMakeUserPresets.json
+scripts/cmake/vtk-*.patch
 
 .snakemake
 
diff --git a/scripts/cmake/DependenciesExternalProject.cmake b/scripts/cmake/DependenciesExternalProject.cmake
index d1a23f7c094..cf36b592710 100644
--- a/scripts/cmake/DependenciesExternalProject.cmake
+++ b/scripts/cmake/DependenciesExternalProject.cmake
@@ -404,16 +404,40 @@ elseif(NOT OGS_BUILD_VTK AND (NOT OGS_USE_MKL OR GUIX_BUILD))
     find_package(VTK ${ogs.minimum_version.vtk} COMPONENTS ${VTK_COMPONENTS})
 endif()
 if(NOT VTK_FOUND)
-    if(APPLE AND "${OGS_EXTERNAL_DEPENDENCIES_CACHE}" STREQUAL "")
-        # Fixes https://stackoverflow.com/questions/9894961 on vismac05:
-        set(_loguru_patch PATCH_COMMAND git apply
-                          "${PROJECT_SOURCE_DIR}/scripts/cmake/loguru.patch"
-        )
-        message(DEBUG "Applying VTK loguru patch")
+    file(
+        DOWNLOAD
+        https://gitlab.kitware.com/bilke/vtk/-/commit/b70e3e103cf711e080f23171201c7d030187146b.patch
+        ${PROJECT_SOURCE_DIR}/scripts/cmake/vtk-win.patch
+    )
+    file(
+        DOWNLOAD
+        https://gitlab.kitware.com/bilke/vtk/-/commit/70b16fda87f82520fa29b48c6a62bafa405d8ee2.patch
+        ${PROJECT_SOURCE_DIR}/scripts/cmake/vtk-mac.patch
+    )
+    if("${OGS_EXTERNAL_DEPENDENCIES_CACHE}" STREQUAL "")
+        set(_vtk_patch PATCH_COMMAND git apply)
+        if(WIN32)
+            # Fixes https://gitlab.kitware.com/vtk/vtk/-/issues/19178
+            list(APPEND _vtk_patch
+                 "${PROJECT_SOURCE_DIR}/scripts/cmake/vtk-win.patch"
+            )
+            message(STATUS "Applying VTK Win patch")
+        endif()
+        if(APPLE)
+            # Fixes https://stackoverflow.com/questions/9894961
+            list(APPEND _vtk_patch
+                 "${PROJECT_SOURCE_DIR}/scripts/cmake/vtk-mac.patch"
+            )
+            message(STATUS "Applying VTK Mac patch")
+        elseif(UNIX)
+            # No pacthes on Linux
+            unset(_vtk_patch)
+        endif()
     endif()
+
     BuildExternalProject(
         VTK ${_vtk_source} CMAKE_ARGS ${VTK_OPTIONS} ${_defaultCMakeArgs}
-                                      ${_loguru_patch} ${_cmake_generator}
+                                      ${_vtk_patch} ${_cmake_generator}
     )
     message(
         STATUS
diff --git a/scripts/cmake/loguru.patch b/scripts/cmake/loguru.patch
deleted file mode 100644
index ec30dd7cb31..00000000000
--- a/scripts/cmake/loguru.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/ThirdParty/loguru/vtkloguru/CMakeLists.txt b/ThirdParty/loguru/vtkloguru/CMakeLists.txt
-index 8a789a0407..440ac619bf 100644
---- a/ThirdParty/loguru/vtkloguru/CMakeLists.txt
-+++ b/ThirdParty/loguru/vtkloguru/CMakeLists.txt
-@@ -17,3 +17,5 @@ generate_export_header(loguru
- 
- vtk_module_find_package(PACKAGE Threads)
- vtk_module_link(VTK::loguru PRIVATE Threads::Threads ${CMAKE_DL_LIBS})
-+
-+set_target_properties(loguru PROPERTIES CXX_VISIBILITY_PRESET default)
diff --git a/web/data/versions.json b/web/data/versions.json
index 4105ef768fa..5a3e59ec98f 100644
--- a/web/data/versions.json
+++ b/web/data/versions.json
@@ -15,7 +15,7 @@
     "boost": "1.73.0",
     "eigen": "3.4.0",
     "eigen-unsupported": "9441d94dccccd5db8d64179516fdc5b53994a047",
-    "vtk": "9.1.0",
+    "vtk": "9.3.0",
     "petsc": "3.18.6",
     "qt": "5.14.2",
     "python": "3.6",
@@ -103,6 +103,7 @@
             "ogscm": "True"
           },
           "cmake": [
+            "VTK_MODULE_ENABLE_VTK_FiltersGeneral=YES",
             "VTK_MODULE_ENABLE_VTK_FiltersParallel=YES"
           ]
         },
-- 
GitLab