From ead641ee9edf77ebb98c90d6d5449086d0ab74c3 Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <github@naumov.de>
Date: Tue, 10 May 2016 02:45:52 +0000
Subject: [PATCH] Cleanup target_link_libraries.

Remove unneeded and transitively included libraries.
Mainly substituting FileIO with appropriate Mesh/GeoLib.
---
 .../Utils/FileConverter/CMakeLists.txt        | 23 ++++++++++---------
 Applications/Utils/GeoTools/CMakeLists.txt    |  4 ++--
 Applications/Utils/MeshEdit/CMakeLists.txt    | 22 +++++++++---------
 .../Utils/ModelPreparation/CMakeLists.txt     |  1 -
 FileIO/CMakeLists.txt                         |  7 +-----
 GeoLib/CMakeLists.txt                         |  1 -
 6 files changed, 26 insertions(+), 32 deletions(-)

diff --git a/Applications/Utils/FileConverter/CMakeLists.txt b/Applications/Utils/FileConverter/CMakeLists.txt
index fa0cf528582..f09387d0f16 100644
--- a/Applications/Utils/FileConverter/CMakeLists.txt
+++ b/Applications/Utils/FileConverter/CMakeLists.txt
@@ -9,47 +9,48 @@ include_directories(
 	${CMAKE_SOURCE_DIR}/Gui/OpenSG
 )
 
-if (QT4_FOUND)
+if (QT4_FOUND AND Shapelib_FOUND)
 	add_executable(ConvertSHPToGLI ConvertSHPToGLI.cpp)
 	set_target_properties(ConvertSHPToGLI PROPERTIES FOLDER Utilities)
+    target_link_libraries(ConvertSHPToGLI GeoLib Qt4::QtXml ${Shapelib_LIBRARIES})
+endif ()
 
-	target_link_libraries(ConvertSHPToGLI FileIO)
-
+if (QT4_FOUND)
 	add_executable(FEFLOW2OGS FEFLOW2OGS.cpp)
 	set_target_properties(FEFLOW2OGS PROPERTIES FOLDER Utilities)
-	target_link_libraries(FEFLOW2OGS GeoLib MeshLib FileIO)
+	target_link_libraries(FEFLOW2OGS FileIO MeshLib)
 	ADD_VTK_DEPENDENCY(FEFLOW2OGS)
-endif () # QT4_FOUND
+endif ()
 
 add_executable(generateMatPropsFromMatID generateMatPropsFromMatID.cpp )
-target_link_libraries(generateMatPropsFromMatID MeshLib FileIO)
+target_link_libraries(generateMatPropsFromMatID MeshLib)
 ADD_VTK_DEPENDENCY(generateMatPropsFromMatID)
 set_target_properties(generateMatPropsFromMatID
 	PROPERTIES FOLDER Utilities)
 
 add_executable(GMSH2OGS GMSH2OGS.cpp)
 set_target_properties(GMSH2OGS PROPERTIES FOLDER Utilities)
-target_link_libraries(GMSH2OGS FileIO )
+target_link_libraries(GMSH2OGS MeshLib FileIO)
 ADD_VTK_DEPENDENCY(GMSH2OGS)
 
 add_executable(OGS2VTK OGS2VTK.cpp)
 set_target_properties(OGS2VTK PROPERTIES FOLDER Utilities)
-target_link_libraries(OGS2VTK FileIO)
+target_link_libraries(OGS2VTK MeshLib)
 ADD_VTK_DEPENDENCY(OGS2VTK)
 
 add_executable(VTK2OGS VTK2OGS.cpp)
 set_target_properties(VTK2OGS PROPERTIES FOLDER Utilities)
-target_link_libraries(VTK2OGS FileIO)
+target_link_libraries(VTK2OGS MeshLib)
 ADD_VTK_DEPENDENCY(VTK2OGS)
 
 add_executable(VTK2TIN VTK2TIN.cpp)
 set_target_properties(VTK2TIN PROPERTIES FOLDER Utilities)
-target_link_libraries(VTK2TIN FileIO)
+target_link_libraries(VTK2TIN MeshLib)
 ADD_VTK_DEPENDENCY(VTK2TIN)
 
 add_executable(TIN2VTK TIN2VTK.cpp)
 set_target_properties(TIN2VTK PROPERTIES FOLDER Utilities)
-target_link_libraries(TIN2VTK FileIO)
+target_link_libraries(TIN2VTK MeshLib)
 ADD_VTK_DEPENDENCY(TIN2VTK)
 
 ####################
diff --git a/Applications/Utils/GeoTools/CMakeLists.txt b/Applications/Utils/GeoTools/CMakeLists.txt
index a63a3a0428c..7b2b1c3b86b 100644
--- a/Applications/Utils/GeoTools/CMakeLists.txt
+++ b/Applications/Utils/GeoTools/CMakeLists.txt
@@ -7,7 +7,7 @@ include_directories(
 
 if(QT4_FOUND)
 	add_executable(TriangulatePolyline TriangulatePolyline.cpp)
-	target_link_libraries(TriangulatePolyline FileIO)
+	target_link_libraries(TriangulatePolyline GeoLib)
 	set_target_properties(TriangulatePolyline PROPERTIES FOLDER Utilities)
 	install(TARGETS
 		TriangulatePolyline
@@ -16,7 +16,7 @@ if(QT4_FOUND)
 	)
 
 	add_executable(MoveGeometry MoveGeometry.cpp)
-	target_link_libraries(MoveGeometry FileIO)
+	target_link_libraries(MoveGeometry GeoLib)
 	set_target_properties(MoveGeometry PROPERTIES FOLDER Utilities)
 	install(TARGETS
 		MoveGeometry
diff --git a/Applications/Utils/MeshEdit/CMakeLists.txt b/Applications/Utils/MeshEdit/CMakeLists.txt
index 2405214193b..a662a8a6819 100644
--- a/Applications/Utils/MeshEdit/CMakeLists.txt
+++ b/Applications/Utils/MeshEdit/CMakeLists.txt
@@ -9,33 +9,33 @@ include_directories(
 )
 
 add_executable(moveMeshNodes moveMeshNodes.cpp)
-target_link_libraries(moveMeshNodes MeshLib FileIO)
+target_link_libraries(moveMeshNodes MeshLib)
 ADD_VTK_DEPENDENCY(moveMeshNodes)
 set_target_properties(moveMeshNodes PROPERTIES FOLDER Utilities)
 
 add_executable(MapGeometryToMeshSurface
 	MapGeometryToMeshSurface.cpp )
-target_link_libraries(MapGeometryToMeshSurface MeshLib MeshGeoToolsLib)
+target_link_libraries(MapGeometryToMeshSurface MeshGeoToolsLib)
 ADD_VTK_DEPENDENCY(MapGeometryToMeshSurface)
 set_target_properties(MapGeometryToMeshSurface PROPERTIES FOLDER Utilities)
 
 add_executable(removeMeshElements removeMeshElements.cpp)
-target_link_libraries(removeMeshElements MeshLib FileIO)
+target_link_libraries(removeMeshElements MeshLib)
 ADD_VTK_DEPENDENCY(removeMeshElements)
 set_target_properties(removeMeshElements PROPERTIES FOLDER Utilities)
 
 add_executable(NodeReordering NodeReordering.cpp)
-target_link_libraries(NodeReordering MeshLib FileIO)
+target_link_libraries(NodeReordering MeshLib)
 ADD_VTK_DEPENDENCY(NodeReordering)
 set_target_properties(NodeReordering PROPERTIES FOLDER Utilities)
 
 add_executable(MoveMesh MoveMesh.cpp)
-target_link_libraries(MoveMesh MeshLib FileIO)
+target_link_libraries(MoveMesh MeshLib)
 ADD_VTK_DEPENDENCY(MoveMesh)
 set_target_properties(MoveMesh PROPERTIES FOLDER Utilities)
 
 add_executable(appendLinesAlongPolyline appendLinesAlongPolyline.cpp)
-target_link_libraries(appendLinesAlongPolyline GeoLib MeshLib MeshGeoToolsLib FileIO)
+target_link_libraries(appendLinesAlongPolyline MeshGeoToolsLib)
 ADD_VTK_DEPENDENCY(appendLinesAlongPolyline)
 set_target_properties(appendLinesAlongPolyline PROPERTIES FOLDER Utilities)
 
@@ -45,7 +45,7 @@ ADD_VTK_DEPENDENCY(editMaterialID)
 set_target_properties(editMaterialID PROPERTIES FOLDER Utilities)
 
 add_executable(checkMesh checkMesh.cpp)
-target_link_libraries(checkMesh MeshLib FileIO)
+target_link_libraries(checkMesh MeshLib)
 ADD_VTK_DEPENDENCY(checkMesh)
 set_target_properties(checkMesh PROPERTIES FOLDER Utilities)
 
@@ -56,21 +56,21 @@ set_target_properties(reviseMesh PROPERTIES FOLDER Utilities)
 
 add_executable(ResetPropertiesInPolygonalRegion
 	ResetPropertiesInPolygonalRegion.cpp)
-target_link_libraries(ResetPropertiesInPolygonalRegion MeshLib GeoLib FileIO)
+target_link_libraries(ResetPropertiesInPolygonalRegion MeshLib)
 set_target_properties(ResetPropertiesInPolygonalRegion
 	PROPERTIES FOLDER Utilities)
 
 add_executable(AddTopLayer AddTopLayer.cpp)
-target_link_libraries(AddTopLayer MeshLib FileIO)
+target_link_libraries(AddTopLayer MeshLib)
 set_target_properties(AddTopLayer PROPERTIES FOLDER Utilities)
 
 add_executable(createLayeredMeshFromRasters createLayeredMeshFromRasters.cpp)
-target_link_libraries(createLayeredMeshFromRasters MeshLib GeoLib FileIO)
+target_link_libraries(createLayeredMeshFromRasters MeshLib)
 set_target_properties(createLayeredMeshFromRasters PROPERTIES FOLDER Utilities)
 
 add_executable(CreateBoundaryConditionsAlongPolylines
 	CreateBoundaryConditionsAlongPolylines.cpp )
-target_link_libraries(CreateBoundaryConditionsAlongPolylines MeshLib FileIO MeshGeoToolsLib)
+target_link_libraries(CreateBoundaryConditionsAlongPolylines MeshGeoToolsLib)
 ADD_VTK_DEPENDENCY(CreateBoundaryConditionsAlongPolylines)
 set_target_properties(CreateBoundaryConditionsAlongPolylines
 	PROPERTIES FOLDER Utilities)
diff --git a/Applications/Utils/ModelPreparation/CMakeLists.txt b/Applications/Utils/ModelPreparation/CMakeLists.txt
index af65454a39f..8abcefe611c 100644
--- a/Applications/Utils/ModelPreparation/CMakeLists.txt
+++ b/Applications/Utils/ModelPreparation/CMakeLists.txt
@@ -2,7 +2,6 @@ add_executable(ComputeNodeAreasFromSurfaceMesh ComputeNodeAreasFromSurfaceMesh.c
 set_target_properties(ComputeNodeAreasFromSurfaceMesh PROPERTIES FOLDER Utilities)
 target_link_libraries(ComputeNodeAreasFromSurfaceMesh
 	MeshLib
-	MathLib
 	${OGS_VTK_REQUIRED_LIBS}
 )
 
diff --git a/FileIO/CMakeLists.txt b/FileIO/CMakeLists.txt
index f0e0482bd2e..0964978b5f8 100644
--- a/FileIO/CMakeLists.txt
+++ b/FileIO/CMakeLists.txt
@@ -34,13 +34,8 @@ include(${PROJECT_SOURCE_DIR}/scripts/cmake/OGSEnabledElements.cmake)
 
 # Create the library
 add_library(FileIO ${SOURCES})
+target_link_libraries(FileIO DataHolderLib)
 
-target_link_libraries(FileIO
-	GeoLib
-	MeshLib
-	InSituLib
-	logog
-)
 if(QT4_FOUND)
 	target_link_libraries(FileIO Qt4::QtXml Qt4::QtXmlPatterns)
 	if(WIN32 AND CMAKE_CROSSCOMPILING AND OPENSSL_FOUND)
diff --git a/GeoLib/CMakeLists.txt b/GeoLib/CMakeLists.txt
index a1943bb4509..71b100412ca 100644
--- a/GeoLib/CMakeLists.txt
+++ b/GeoLib/CMakeLists.txt
@@ -21,7 +21,6 @@ add_library(GeoLib STATIC ${SOURCES}
 )
 
 target_link_libraries(GeoLib
-	BaseLib
 	MathLib
 )
 
-- 
GitLab