diff --git a/CMakeLists.txt b/CMakeLists.txt
index b479f3b497212113005e3e327afc7c73680b34bf..7f876fd3f77b7af9a26e3b5d99e89d859969eee1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -222,10 +222,6 @@ if(OGS_USE_EIGEN)
 endif()
 # End Eigen
 
-if(OGS_USE_XDMF)
-    add_definitions(-DOGS_USE_XDMF)
-endif()
-
 if(OGS_FATAL_ABORT)
     add_definitions(-DOGS_FATAL_ABORT)
 endif()
diff --git a/MeshLib/CMakeLists.txt b/MeshLib/CMakeLists.txt
index 01c8dec50a603d717b0d5c042dcb440b084d69de..da4a150d364886b177d8de17f4e591c9ef873e5e 100644
--- a/MeshLib/CMakeLists.txt
+++ b/MeshLib/CMakeLists.txt
@@ -42,3 +42,6 @@ endif()
 if(OGS_USE_PETSC)
     target_compile_definitions(MeshLib PUBLIC USE_PETSC)
 endif()
+if(OGS_USE_XDMF)
+    target_compile_definitions(MeshLib PRIVATE OGS_USE_XDMF)
+endif()
diff --git a/ProcessLib/CMakeLists.txt b/ProcessLib/CMakeLists.txt
index db7fc4f8d851a686af12079c170b93a513c8f50f..67118f1d458f7d006b743a849bec23bf60640d82 100644
--- a/ProcessLib/CMakeLists.txt
+++ b/ProcessLib/CMakeLists.txt
@@ -26,6 +26,9 @@ endif()
 if(OGS_USE_PETSC)
     target_compile_definitions(ProcessLib PUBLIC USE_PETSC)
 endif()
+if(OGS_USE_XDMF)
+    target_compile_definitions(ProcessLib PUBLIC OGS_USE_XDMF)
+endif()
 target_link_libraries(ProcessLib
     PUBLIC
         BaseLib