diff --git a/Applications/DataExplorer/DataExplorer.cmake b/Applications/DataExplorer/DataExplorer.cmake
index 8a17e46f3e40d009d903c257c3dc4a2669cca38b..815b4acc2b0af1b0bfc723ef470a350123316c70 100644
--- a/Applications/DataExplorer/DataExplorer.cmake
+++ b/Applications/DataExplorer/DataExplorer.cmake
@@ -122,6 +122,8 @@ IF(VTKFBXCONVERTER_FOUND)
 	TARGET_LINK_LIBRARIES(DataExplorer ${VTKFBXCONVERTER_LIBRARIES})
 ENDIF()
 
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(DataExplorer)
 
 SET_PROPERTY(TARGET DataExplorer PROPERTY FOLDER "DataExplorer")
 
diff --git a/Applications/DataExplorer/DataView/CMakeLists.txt b/Applications/DataExplorer/DataView/CMakeLists.txt
index 748d2425b7eca9d7df3286dc0e01b7fdf4365b66..76880d4e23bcaf64432e78e1da21f11e2e0f51e0 100644
--- a/Applications/DataExplorer/DataView/CMakeLists.txt
+++ b/Applications/DataExplorer/DataView/CMakeLists.txt
@@ -184,9 +184,8 @@ target_link_libraries( QtDataView
 	shp
 )
 
-IF(TARGET VtkRescan)
-	ADD_DEPENDENCIES(QtDataView VtkRescan)
-ENDIF()
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(QtDataView)
 
 IF (GEOTIFF_FOUND)
 	TARGET_LINK_LIBRARIES( QtDataView ${GEOTIFF_LIBRARIES} )
diff --git a/Applications/DataExplorer/VtkAct/CMakeLists.txt b/Applications/DataExplorer/VtkAct/CMakeLists.txt
index db6a28d37d2ee3c34ca49ffc90cc222c33fd4043..5003be038ee1e1a5670fbceadc4de3bde0be0377 100644
--- a/Applications/DataExplorer/VtkAct/CMakeLists.txt
+++ b/Applications/DataExplorer/VtkAct/CMakeLists.txt
@@ -50,9 +50,8 @@ add_library( VtkAct STATIC
 	${UIS}
 )
 
-IF(TARGET VtkRescan)
-	ADD_DEPENDENCIES(VtkAct VtkRescan)
-ENDIF()
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(VtkAct)
 
 target_link_libraries( VtkAct ${QT_LIBRARIES} )
 
diff --git a/Applications/DataExplorer/VtkVis/CMakeLists.txt b/Applications/DataExplorer/VtkVis/CMakeLists.txt
index 8553c052f485d975d6ed8e4b9966357343e952d7..8290ee58c9a9952a7b576dacd1b552a919179d43 100644
--- a/Applications/DataExplorer/VtkVis/CMakeLists.txt
+++ b/Applications/DataExplorer/VtkVis/CMakeLists.txt
@@ -148,9 +148,8 @@ ADD_LIBRARY( VtkVis STATIC
 	${UIS}
 )
 
-IF(TARGET VtkRescan)
-	ADD_DEPENDENCIES(VtkVis VtkRescan)
-ENDIF()
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(VtkVis)
 
 IF (GEOTIFF_FOUND)
 	INCLUDE_DIRECTORIES( ${GEOTIFF_INCLUDE_DIRS} )
diff --git a/FileIO/CMakeLists.txt b/FileIO/CMakeLists.txt
index 662ff06600858cc078d933b75c2a68027bd64181..0b313f5de2a0796890a7e5bd2014a4b07520f790 100644
--- a/FileIO/CMakeLists.txt
+++ b/FileIO/CMakeLists.txt
@@ -56,9 +56,8 @@ TARGET_LINK_LIBRARIES (FileIO
 	shp
 )
 
-IF(TARGET VtkRescan)
-	ADD_DEPENDENCIES(FileIO VtkRescan)
-ENDIF()
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(FileIO)
 
 FILE(GLOB XSD_FILES . *.xsd)
 IF(APPLE)
diff --git a/InSituLib/CMakeLists.txt b/InSituLib/CMakeLists.txt
index f7603344bba766f8e8c873987db163749dab4b78..e1a6a7231e6a49e28d44e79be3a6c07539532a28 100644
--- a/InSituLib/CMakeLists.txt
+++ b/InSituLib/CMakeLists.txt
@@ -12,6 +12,5 @@ ADD_LIBRARY(InSituLib
 	VtkMappedMeshSource.cpp
 )
 
-IF(TARGET VtkRescan)
-	ADD_DEPENDENCIES(InSituLib VtkRescan)
-ENDIF()
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(InSituLib)
diff --git a/MeshLib/CMakeLists.txt b/MeshLib/CMakeLists.txt
index ea4430e4f58627a43339518c7e287f7542f1a5d1..3ea1ccadec3cbd6939de3071c00fed21d27547d8 100644
--- a/MeshLib/CMakeLists.txt
+++ b/MeshLib/CMakeLists.txt
@@ -16,6 +16,5 @@ target_link_libraries (MeshLib
 	logog
 )
 
-IF(TARGET VtkRescan)
-	ADD_DEPENDENCIES(MeshLib VtkRescan)
-ENDIF()
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(MeshLib)
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 72be7851cb59761350ca64ed9d47c80cd2a0f597..ca996e29a7e46b27c7ca245c0e8e060681e56896 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -72,6 +72,8 @@ IF (QT4_FOUND)
 	TARGET_LINK_LIBRARIES(testrunner ${QT_LIBRARIES})
 ENDIF()
 
+INCLUDE(AddCatalystDependency)
+ADD_CATALYST_DEPENDENCY(testrunner)
 
 # Add make-target test which runs the testrunner
 # This should override CTest's predefined test-target but it does not
diff --git a/scripts/cmake/AddCatalystDependency.cmake b/scripts/cmake/AddCatalystDependency.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..bf18e31d9d889f7f791be9c4bbfdf07bce05163c
--- /dev/null
+++ b/scripts/cmake/AddCatalystDependency.cmake
@@ -0,0 +1,12 @@
+MACRO(ADD_CATALYST_DEPENDENCY target)
+	IF(ParaView_FOUND)
+		INCLUDE("${PARAVIEW_USE_FILE}")
+
+		# see http://stackoverflow.com/questions/18642155
+		SET_PROPERTY(TARGET ${target} APPEND PROPERTY COMPILE_DEFINITIONS ${VTK_DEFINITIONS})
+	ENDIF()
+
+	IF(TARGET VtkRescan)
+		ADD_DEPENDENCIES(${target} VtkRescan)
+	ENDIF()
+ENDMACRO()
diff --git a/scripts/cmake/ExternalProjectCatalyst.cmake b/scripts/cmake/ExternalProjectCatalyst.cmake
index 4d1898aaad288e70f897bdd1b4c9b40c446e7a95..5acd4a896e0a30c1ebb126e1c25bb68810ea7bd0 100644
--- a/scripts/cmake/ExternalProjectCatalyst.cmake
+++ b/scripts/cmake/ExternalProjectCatalyst.cmake
@@ -42,10 +42,6 @@ FIND_PACKAGE(ParaView 4.2 COMPONENTS ${PARAVIEW_MODULES} NO_MODULE)
 
 FIND_LIBRARY(VTKIO_LIB_FOUND vtkIOXML-pv4.2 HINTS ${ParaView_DIR}/lib PATH_SUFFIXES Release Debug)
 IF(ParaView_FOUND AND VTKIO_LIB_FOUND)
-	INCLUDE("${PARAVIEW_USE_FILE}")
-
-	# see http://stackoverflow.com/questions/18642155
-	SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ${VTK_DEFINITIONS})
 	RETURN()
 ELSEIF(NOT ParaView_DIR)
 	SET(ParaView_DIR ${CMAKE_BINARY_DIR}/External/catalyst/src/Catalyst-build CACHE PATH "" FORCE)