From d877dfa465274d9f24eeaa5b23bd2294f716bee9 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Fri, 10 Oct 2014 08:06:24 +0200
Subject: [PATCH] Introduced CMake macro Add_Catalyst_Dependecy to set up a
 target.

If you use VTK / ParaView classes in your target set everything up
with this macro.

Usage:

    INCLUDE(AddCatalystDependency)
    ADD_CATALYST_DEPENDENCY(Target)
---
 Applications/DataExplorer/DataExplorer.cmake      |  2 ++
 Applications/DataExplorer/DataView/CMakeLists.txt |  5 ++---
 Applications/DataExplorer/VtkAct/CMakeLists.txt   |  5 ++---
 Applications/DataExplorer/VtkVis/CMakeLists.txt   |  5 ++---
 FileIO/CMakeLists.txt                             |  5 ++---
 InSituLib/CMakeLists.txt                          |  5 ++---
 MeshLib/CMakeLists.txt                            |  5 ++---
 Tests/CMakeLists.txt                              |  2 ++
 scripts/cmake/AddCatalystDependency.cmake         | 12 ++++++++++++
 scripts/cmake/ExternalProjectCatalyst.cmake       |  4 ----
 10 files changed, 28 insertions(+), 22 deletions(-)
 create mode 100644 scripts/cmake/AddCatalystDependency.cmake

diff --git a/Applications/DataExplorer/DataExplorer.cmake b/Applications/DataExplorer/DataExplorer.cmake
index 8a17e46f3e4..815b4acc2b0 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 748d2425b7e..76880d4e23b 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 db6a28d37d2..5003be038ee 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 8553c052f48..8290ee58c9a 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 662ff066008..0b313f5de2a 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 f7603344bba..e1a6a7231e6 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 ea4430e4f58..3ea1ccadec3 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 72be7851cb5..ca996e29a7e 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 00000000000..bf18e31d9d8
--- /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 4d1898aaad2..5acd4a896e0 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)
-- 
GitLab