diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7e9122cc256e71c595caf90d1bcdae58fbff5c59..de77a504aa99fd8974a82f6c970f731924a3d181 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,16 +72,29 @@ find_dependency(MPI)\n"
 
 if(CM_ALL_VTK_OUTPUT)
     message("Using VTK output")
-    find_package(VTK REQUIRED COMPONENTS
-        vtkCommonCore
-        vtkCommonDataModel
-        vtkFiltersProgrammable
-        vtkIOParallelXML
-        vtkIOXML
-        vtkParallelMPI
-    )
+    find_package(VTK)
     if(NOT VTK_FOUND)
         message(FATAL_ERROR "VTK not found, help CMake to find it by setting VTK_LIBRARY and VTK_INCLUDE_DIR")
+    else()
+        if (VTK_MAJOR_VERSION GREATER_EQUAL 9)
+            find_package(VTK REQUIRED COMPONENTS
+                CommonCore
+                CommonDataModel
+                FiltersProgrammable
+                IOParallelXML
+                IOXML
+                ParallelMPI
+            )
+        else()
+            find_package(VTK REQUIRED COMPONENTS
+                vtkCommonCore
+                vtkCommonDataModel
+                vtkFiltersProgrammable
+                vtkIOParallelXML
+                vtkIOXML
+                vtkParallelMPI
+            )
+        endif()
     endif()
     file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/Config.cmake.in "find_dependency(VTK)\n")
 endif(CM_ALL_VTK_OUTPUT)