diff --git a/CMakeLists.txt b/CMakeLists.txt
index f254ad85d301c82e07283cf869da4e6cd7ac7b6e..26b83698bd052b2073a2bccc3b05827855a13e2f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -102,7 +102,6 @@ if(OGS_USE_PETSC AND MSVC)
     )
 endif()
 option(OGS_USE_NETCDF "Add NetCDF support." OFF)
-option(OGS_USE_XDMF "Add Xdmf file IO support" OFF)
 
 # Eigen
 option(OGS_USE_EIGEN_UNSUPPORTED "Use Eigen unsupported modules" ON)
@@ -195,7 +194,7 @@ include(packaging/Pack)
 # ---- Subdirectories ----
 include_directories(${PROJECT_SOURCE_DIR})
 # xdmfdiff
-if(OGS_USE_XDMF AND OGS_BUILD_TESTING)
+if(OGS_BUILD_TESTING)
     add_subdirectory(Tests/xdmfdiff)
 endif()
 
diff --git a/CMakePresets.json b/CMakePresets.json
index 051de3e0e66d90c656463f9a6446fa73cae0e9d1..6a2b0af8b59d3d95c143db6eea7d6539a29b5426 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -134,8 +134,7 @@
       "name": "_all",
       "hidden": true,
       "cacheVariables": {
-        "OGS_USE_MFRONT": "ON",
-        "OGS_USE_XDMF": "ON"
+        "OGS_USE_MFRONT": "ON"
       }
     },
     {
diff --git a/MeshLib/CMakeLists.txt b/MeshLib/CMakeLists.txt
index fb45ea034db38dfbf978577c9851f8efcce5de74..fce297b5f462b5d09964b3547cdfa2ed818a8974 100644
--- a/MeshLib/CMakeLists.txt
+++ b/MeshLib/CMakeLists.txt
@@ -49,5 +49,4 @@ target_compile_definitions(
     MeshLib
     PUBLIC
         $<$<AND:$<BOOL:$ENV{VTK_USE_64BIT_IDS}>,$<NOT:$<BOOL:VTK_ADDED>>>:VTK_USE_64BIT_IDS>
-    PRIVATE $<$<BOOL:${OGS_USE_XDMF}>:OGS_USE_XDMF>
 )
diff --git a/ProcessLib/CMakeLists.txt b/ProcessLib/CMakeLists.txt
index a84b271af04213852f56b59ffa61cd3374422b3f..2c417a1d6d8e1aaa246deb9b984e299074daec8a 100644
--- a/ProcessLib/CMakeLists.txt
+++ b/ProcessLib/CMakeLists.txt
@@ -38,14 +38,12 @@ target_link_libraries(
         $<$<TARGET_EXISTS:ProcessLibSourceTermPython>:ProcessLibSourceTermPython>
         $<$<TARGET_EXISTS:petsc>:petsc>
         nlohmann_json
-    PRIVATE ParameterLib GitInfoLib
-            $<$<TARGET_EXISTS:InSituLib>:InSituLib>
+    PRIVATE ParameterLib GitInfoLib $<$<TARGET_EXISTS:InSituLib>:InSituLib>
 )
 
 target_compile_definitions(
     ProcessLib
-    PUBLIC $<$<BOOL:${OGS_USE_XDMF}>:OGS_USE_XDMF>
-           # Enabled elements
+    PUBLIC # Enabled elements
            OGS_MAX_ELEMENT_DIM=${OGS_MAX_ELEMENT_DIM}
            OGS_MAX_ELEMENT_ORDER=${OGS_MAX_ELEMENT_ORDER}
            $<$<BOOL:${OGS_ENABLE_ELEMENT_SIMPLEX}>:OGS_ENABLE_ELEMENT_SIMPLEX>
diff --git a/ProcessLib/LiquidFlow/Tests.cmake b/ProcessLib/LiquidFlow/Tests.cmake
index ca84d1cc97e2bb3cd22e55c5633954e7a9955f3b..a302aca454319a6fdada998be8a693b33b576a9d 100644
--- a/ProcessLib/LiquidFlow/Tests.cmake
+++ b/ProcessLib/LiquidFlow/Tests.cmake
@@ -482,7 +482,7 @@ AddTest(
     WRAPPER time
     TESTER xdmfdiff
     # See https://gitlab.opengeosys.org/ogs/ogs/-/merge_requests/3184#note_85104
-    REQUIREMENTS NOT OGS_USE_MPI AND OGS_USE_XDMF AND NOT COMPILER_IS_APPLE_CLANG
+    REQUIREMENTS NOT OGS_USE_MPI AND NOT COMPILER_IS_APPLE_CLANG
     DIFF_DATA
     square_5x5_tris_32.xdmf square_5x5_tris_32.xdmf pressure pressure 1e-7 1e-13
     square_5x5_tris_32.xdmf square_5x5_tris_32.xdmf HydraulicFlow HydraulicFlow 1e-7 1e-13
diff --git a/ProcessLib/SteadyStateDiffusion/Tests.cmake b/ProcessLib/SteadyStateDiffusion/Tests.cmake
index 2d30d35fcc09c9e38f34fe94a4d0eddbb7b8f853..9dd07c7fcee15b08bd0024f83744ee67eeba8672 100644
--- a/ProcessLib/SteadyStateDiffusion/Tests.cmake
+++ b/ProcessLib/SteadyStateDiffusion/Tests.cmake
@@ -423,7 +423,7 @@ AddTest(
     WRAPPER mpirun
     WRAPPER_ARGS -np 3
     TESTER xdmfdiff
-    REQUIREMENTS (OGS_USE_MPI AND OGS_USE_XDMF)
+    REQUIREMENTS OGS_USE_MPI
     DIFF_DATA
     cube_1e3_np3.xdmf cube_1e3_np3.xdmf pressure pressure 1e-3 1e-3
     cube_1e3_np3.xdmf cube_1e3_np3.xdmf v v 1e-3 1e-3
@@ -437,7 +437,7 @@ AddTest(
     WRAPPER mpirun
     WRAPPER_ARGS -np 2
     TESTER xdmfdiff
-    REQUIREMENTS (OGS_USE_MPI AND OGS_USE_XDMF)
+    REQUIREMENTS OGS_USE_MPI
     DIFF_DATA
     cube_1e3_np2.xdmf cube_1e3_np2.xdmf pressure pressure 1e-3 1e-3
     cube_1e3_np2.xdmf cube_1e3_np2.xdmf v v 1e-3 1e-3
diff --git a/scripts/ci/jobs/build-linux-petsc.yml b/scripts/ci/jobs/build-linux-petsc.yml
index 8af9b11b906b28e65d11323042cdfb17634074ca..225c04c09c89106b218b70e9647903b7e839d951 100644
--- a/scripts/ci/jobs/build-linux-petsc.yml
+++ b/scripts/ci/jobs/build-linux-petsc.yml
@@ -9,5 +9,3 @@ build linux petsc:
   variables:
     BUILD_CTEST_LARGE_ON_MASTER: "true"
     CMAKE_PRESET: release-petsc
-    CMAKE_ARGS: >-
-      -DOGS_USE_XDMF=ON
diff --git a/scripts/ci/jobs/build-linux.yml b/scripts/ci/jobs/build-linux.yml
index c3a0a1daab9f02b1eccd292ebc87f23adde2fc36..8a1dcf52956729ed41a84de58fe8be35c6d4a72d 100644
--- a/scripts/ci/jobs/build-linux.yml
+++ b/scripts/ci/jobs/build-linux.yml
@@ -14,7 +14,6 @@ build linux:
       -DOGS_USE_MFRONT=ON
       -DOGS_$USE_PYTHON
       -DOGS_INSTALL_DEPENDENCIES=ON
-      -DOGS_USE_XDMF=ON
   parallel:
     matrix:
       - USE_PYTHON: ["USE_PYTHON=ON", "USE_PYTHON=OFF"]
@@ -36,7 +35,6 @@ linux ctest large:
       -DOGS_USE_CONAN=OFF
       -DOGS_USE_MFRONT=ON
       -DOGS_USE_PYTHON=ON
-      -DOGS_USE_XDMF=ON
 
 build linux (no unity):
   image: $CONTAINER_GCC_IMAGE
@@ -57,7 +55,6 @@ build linux (no unity):
       -DOGS_USE_CONAN=OFF
       -DOGS_USE_MFRONT=ON
       -DOGS_USE_UNITY_BUILDS=OFF
-      -DOGS_USE_XDMF=ON
 
 build linux (no deps, no procs):
   image: $CONTAINER_GCC_IMAGE
diff --git a/scripts/ci/jobs/build-mac.yml b/scripts/ci/jobs/build-mac.yml
index 1c3e79ee2feff28f6385f1c6ee6b041ffc268562..5c46c156f61eb87cf62b412c3fc0a3e877027a7b 100644
--- a/scripts/ci/jobs/build-mac.yml
+++ b/scripts/ci/jobs/build-mac.yml
@@ -11,5 +11,4 @@ build mac:
     CMAKE_PRESET: release
     CMAKE_ARGS: >-
       -DOGS_INSTALL_DEPENDENCIES=ON
-      -DOGS_USE_XDMF=ON
       -DOGS_USE_MFRONT=ON
diff --git a/scripts/ci/jobs/build-win.yml b/scripts/ci/jobs/build-win.yml
index 9c2ed063ede0a1ba66d3403d8767a8421aea293e..ce3ca3d0946315016c64556da598dd5dbedf2354 100644
--- a/scripts/ci/jobs/build-win.yml
+++ b/scripts/ci/jobs/build-win.yml
@@ -1,7 +1,7 @@
 build win:
   extends: .template-build-win
   rules:
-    - if: '$USE_PYTHON =~ /ON$/'
+    - if: "$USE_PYTHON =~ /ON$/"
     - if: '$CI_COMMIT_BRANCH == "master"'
     - if: $CI_COMMIT_BRANCH =~ /^v[0-9]\.[0-9]\.[0-9]/
     - when: manual
@@ -14,7 +14,6 @@ build win:
       -DOGS_CI_TESTRUNNER_REPEAT=1
       -DOGS_$USE_PYTHON
       -DOGS_USE_CONAN=AUTO
-      -DOGS_USE_XDMF=ON
   parallel:
     matrix:
       - USE_PYTHON: ["USE_PYTHON=ON", "USE_PYTHON=OFF"]
diff --git a/scripts/ci/jobs/code-quality.yml b/scripts/ci/jobs/code-quality.yml
index 6967592e56f598d4991548748eb8514cbf33f9bb..58b21d27a99d388859bf63aee74eba5824dfeee8 100644
--- a/scripts/ci/jobs/code-quality.yml
+++ b/scripts/ci/jobs/code-quality.yml
@@ -1,7 +1,7 @@
 cppcheck:
   stage: check
   image: $CONTAINER_GCC_IMAGE
-  needs: [ ci_images, meta ]
+  needs: [ci_images, meta]
   before_script:
     - mkdir -p build
     - cd build
@@ -9,7 +9,7 @@ cppcheck:
     - >
       cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF
       -DOGS_USE_PYTHON=OFF -DOGS_BUILD_UTILS=OFF
-      -DOGS_USE_UNITY_BUILDS=OFF -DOGS_USE_XDMF=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
+      -DOGS_USE_UNITY_BUILDS=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
     - bash cppcheck.sh
   artifacts:
     reports:
diff --git a/scripts/cmake/DocumentationSetup.cmake b/scripts/cmake/DocumentationSetup.cmake
index 5397b05341fe5788b5c865ca5bf5b6be2077e90d..a9ce78bab59f666d7c4fc7d00851e20697872a5f 100644
--- a/scripts/cmake/DocumentationSetup.cmake
+++ b/scripts/cmake/DocumentationSetup.cmake
@@ -62,7 +62,6 @@ set(DOXYGEN_PREDEFINED
     OGS_USE_MFRONT
     OGS_USE_NETCDF
     OGS_USE_PYTHON
-    OGS_USE_XDMF
     USE_INSITU
     USE_LIS
     USE_MKL