From 101075fd6c8d211c12d2b10f0c4442023361c86a Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Fri, 5 May 2017 10:28:18 +0200
Subject: [PATCH] [CMake] Corrected remaining dependencies.

---
 Applications/ApplicationsLib/CMakeLists.txt |  5 ++---
 Applications/CLI/CMakeLists.txt             |  9 +++------
 Applications/DataHolderLib/CMakeLists.txt   |  5 ++---
 Applications/FileIO/CMakeLists.txt          | 11 +++++++++--
 Applications/InSituLib/CMakeLists.txt       |  3 +++
 BaseLib/CMakeLists.txt                      | 10 ++++------
 GeoLib/CMakeLists.txt                       |  8 +++-----
 MaterialLib/CMakeLists.txt                  |  3 ++-
 MathLib/CMakeLists.txt                      | 14 ++++++--------
 MeshGeoToolsLib/CMakeLists.txt              |  6 ++----
 MeshLib/CMakeLists.txt                      |  2 +-
 NumLib/CMakeLists.txt                       |  8 ++------
 12 files changed, 39 insertions(+), 45 deletions(-)

diff --git a/Applications/ApplicationsLib/CMakeLists.txt b/Applications/ApplicationsLib/CMakeLists.txt
index 5d4b82fa1d1..d9025f2aa8c 100644
--- a/Applications/ApplicationsLib/CMakeLists.txt
+++ b/Applications/ApplicationsLib/CMakeLists.txt
@@ -6,9 +6,8 @@ set(LIB_SOURCES ${SOURCES_APPLICATIONSLIB})
 add_library(ApplicationsLib ${LIB_SOURCES})
 
 target_link_libraries(ApplicationsLib
-    MeshGeoToolsLib
-    NumLib
-    ProcessLib
+    PUBLIC BaseLib GeoLib NumLib ProcessLib logog
+    PRIVATE MathLib MeshLib
 )
 
 if(TARGET Eigen)
diff --git a/Applications/CLI/CMakeLists.txt b/Applications/CLI/CMakeLists.txt
index 442531766f0..bb2be271453 100644
--- a/Applications/CLI/CMakeLists.txt
+++ b/Applications/CLI/CMakeLists.txt
@@ -2,20 +2,17 @@
 add_executable(ogs ogs.cpp)
 
 target_link_libraries(ogs
-    ApplicationsLib
-    MeshGeoToolsLib
-    ProcessLib
-    NumLib
+    PRIVATE BaseLib ApplicationsLib NumLib ProcessLib
 )
 
 ADD_VTK_DEPENDENCY(ogs)
 
 if(OGS_USE_PETSC)
-    target_link_libraries(ogs ${PETSC_LIBRARIES})
+    target_link_libraries(ogs PRIVATE ${PETSC_LIBRARIES})
 endif()
 
 if(OGS_INSITU)
-    target_link_libraries(ogs InSituLib)
+    target_link_libraries(ogs PRIVATE InSituLib)
 endif()
 
 if(OGS_USE_PCH)
diff --git a/Applications/DataHolderLib/CMakeLists.txt b/Applications/DataHolderLib/CMakeLists.txt
index cfcd824d098..9740aafa4b5 100644
--- a/Applications/DataHolderLib/CMakeLists.txt
+++ b/Applications/DataHolderLib/CMakeLists.txt
@@ -5,9 +5,8 @@ GET_SOURCE_FILES(SOURCES_DataHolderLib)
 add_library(DataHolderLib ${SOURCES_DataHolderLib})
 
 target_link_libraries(DataHolderLib
-    GeoLib
-    MeshLib
-    logog
+    PUBLIC GeoLib MeshLib
+    PRIVATE BaseLib logog
 )
 
 if(OGS_USE_PCH)
diff --git a/Applications/FileIO/CMakeLists.txt b/Applications/FileIO/CMakeLists.txt
index fffd2690063..cb5cc7f9d29 100644
--- a/Applications/FileIO/CMakeLists.txt
+++ b/Applications/FileIO/CMakeLists.txt
@@ -19,10 +19,17 @@ include(${PROJECT_SOURCE_DIR}/scripts/cmake/OGSEnabledElements.cmake)
 
 # Create the library
 add_library(ApplicationsFileIO ${SOURCES})
-target_link_libraries(ApplicationsFileIO DataHolderLib)
+target_link_libraries(ApplicationsFileIO
+    PUBLIC BaseLib DataHolderLib GeoLib MathLib logog
+    PRIVATE ApplicationsLib MeshLib
+)
 
 if(Shapelib_FOUND)
-    target_link_libraries(ApplicationsFileIO ${Shapelib_LIBRARIES})
+    target_link_libraries(ApplicationsFileIO PRIVATE ${Shapelib_LIBRARIES})
+endif()
+
+if(OGS_BUILD_SWMM)
+    target_link_libraries(ApplicationsFileIO PRIVATE SwmmInterface)
 endif()
 
 ADD_VTK_DEPENDENCY(ApplicationsFileIO)
diff --git a/Applications/InSituLib/CMakeLists.txt b/Applications/InSituLib/CMakeLists.txt
index 38b9b025b7f..732d546c4e5 100644
--- a/Applications/InSituLib/CMakeLists.txt
+++ b/Applications/InSituLib/CMakeLists.txt
@@ -3,6 +3,9 @@ GET_SOURCE_FILES(SOURCES)
 
 # Library
 add_library(InSituLib ${SOURCES})
+
+target_link_libraries(PUBLIC BaseLib PRIVATE MeshLib)
+
 if(OGS_USE_PCH)
     cotire(InSituLib)
 endif()
diff --git a/BaseLib/CMakeLists.txt b/BaseLib/CMakeLists.txt
index 69e46a1af3c..377ac3b07a3 100644
--- a/BaseLib/CMakeLists.txt
+++ b/BaseLib/CMakeLists.txt
@@ -14,18 +14,16 @@ add_library(BaseLib ${SOURCES})
 
 set_target_properties(BaseLib PROPERTIES LINKER_LANGUAGE CXX)
 
-target_link_libraries(BaseLib
-    logog
-)
+target_link_libraries(BaseLib PUBLIC logog)
 
 if(MSVC)
-    target_link_libraries(BaseLib WinMM) # needed for timeGetTime
+    target_link_libraries(BaseLib PRIVATE WinMM) # needed for timeGetTime
 endif()
 
 if(Qt5XmlPatterns_FOUND)
-    target_link_libraries(BaseLib Qt5::Xml Qt5::XmlPatterns)
+    target_link_libraries(BaseLib PUBLIC Qt5::Xml Qt5::XmlPatterns)
     if(WIN32 AND CMAKE_CROSSCOMPILING AND OPENSSL_FOUND)
-        target_link_libraries(BaseLib Qt5::Network ${OPENSSL_LIBRARIES} ws2_32)
+        target_link_libraries(BaseLib PUBLIC Qt5::Network ${OPENSSL_LIBRARIES} ws2_32)
     endif()
 endif()
 
diff --git a/GeoLib/CMakeLists.txt b/GeoLib/CMakeLists.txt
index 747e074dca5..f7b51618a7a 100644
--- a/GeoLib/CMakeLists.txt
+++ b/GeoLib/CMakeLists.txt
@@ -16,14 +16,12 @@ add_library(GeoLib ${SOURCES}
     ${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/tetgen/predicates.cxx
 )
 
-target_link_libraries(GeoLib
-    MathLib
-)
+target_link_libraries(GeoLib PUBLIC BaseLib MathLib logog)
 
 if(Qt5XmlPatterns_FOUND)
-    target_link_libraries(GeoLib Qt5::Xml Qt5::XmlPatterns)
+    target_link_libraries(GeoLib PUBLIC Qt5::Xml Qt5::XmlPatterns)
     if(WIN32 AND CMAKE_CROSSCOMPILING AND OPENSSL_FOUND)
-        target_link_libraries(GeoLib Qt5::Network ${OPENSSL_LIBRARIES} ws2_32)
+        target_link_libraries(GeoLib PUBLIC Qt5::Network ${OPENSSL_LIBRARIES} ws2_32)
     endif()
 endif()
 
diff --git a/MaterialLib/CMakeLists.txt b/MaterialLib/CMakeLists.txt
index d2488350c06..52b82c27b8b 100644
--- a/MaterialLib/CMakeLists.txt
+++ b/MaterialLib/CMakeLists.txt
@@ -21,7 +21,8 @@ append_source_files(SOURCES TwoPhaseModels)
 
 add_library(MaterialLib ${SOURCES})
 target_link_libraries(MaterialLib
-    BaseLib
+    PUBLIC BaseLib NumLib ProcessLib logog
+    PRIVATE MathLib MeshLib
 )
 
 if(OGS_USE_PCH)
diff --git a/MathLib/CMakeLists.txt b/MathLib/CMakeLists.txt
index aeccec33ff7..41abeba6e00 100644
--- a/MathLib/CMakeLists.txt
+++ b/MathLib/CMakeLists.txt
@@ -28,28 +28,26 @@ add_library(MathLib ${SOURCES})
 
 set_target_properties(MathLib PROPERTIES LINKER_LANGUAGE CXX)
 
-target_link_libraries(MathLib
-    BaseLib
-)
+target_link_libraries(MathLib PUBLIC BaseLib logog)
 
 if (CVODE_FOUND)
-    target_link_libraries(MathLib ${CVODE_LIBRARIES})
+    target_link_libraries(MathLib PUBLIC ${CVODE_LIBRARIES})
 endif()
 
 if(LAPACK_FOUND)
-    target_link_libraries(MathLib ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
+    target_link_libraries(MathLib PUBLIC ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
 endif()
 
 if (OGS_USE_LIS)
-    target_link_libraries(MathLib ${LIS_LIBRARIES})
+    target_link_libraries(MathLib PUBLIC ${LIS_LIBRARIES})
 endif()
 
 if (OGS_USE_MKL)
-    target_link_libraries(MathLib ${MKL_LIBRARIES})
+    target_link_libraries(MathLib PUBLIC ${MKL_LIBRARIES})
 endif()
 
 if (OGS_USE_PETSC)
-    target_link_libraries(MathLib ${PETSC_LIBRARIES})
+    target_link_libraries(MathLib PUBLIC ${PETSC_LIBRARIES})
 endif()
 
 if(TARGET Boost)
diff --git a/MeshGeoToolsLib/CMakeLists.txt b/MeshGeoToolsLib/CMakeLists.txt
index 662f25ece84..94e3ce86759 100644
--- a/MeshGeoToolsLib/CMakeLists.txt
+++ b/MeshGeoToolsLib/CMakeLists.txt
@@ -5,10 +5,8 @@ GET_SOURCE_FILES(SOURCES)
 add_library(MeshGeoToolsLib ${SOURCES})
 
 target_link_libraries(MeshGeoToolsLib
-    BaseLib
-    MathLib
-    MeshLib
-    GeoLib
+    PUBLIC GeoLib MathLib
+    PRIVATE BaseLib MeshLib logog
 )
 
 if(TARGET Boost)
diff --git a/MeshLib/CMakeLists.txt b/MeshLib/CMakeLists.txt
index 7da5c02a33e..13ec4dcd1f2 100644
--- a/MeshLib/CMakeLists.txt
+++ b/MeshLib/CMakeLists.txt
@@ -27,7 +27,7 @@ if(OGS_USE_PCH)
 endif()
 
 target_link_libraries(MeshLib
-    PUBLIC BaseLib GeoLib MathLib
+    PUBLIC BaseLib GeoLib MathLib logog
     INTERFACE vtkIOXML
 )
 
diff --git a/NumLib/CMakeLists.txt b/NumLib/CMakeLists.txt
index ac83fc18073..bcd102b8e2c 100644
--- a/NumLib/CMakeLists.txt
+++ b/NumLib/CMakeLists.txt
@@ -20,12 +20,8 @@ add_library(NumLib ${SOURCES})
 set_target_properties(NumLib PROPERTIES LINKER_LANGUAGE CXX)
 
 target_link_libraries(NumLib
-    BaseLib
-    GeoLib
-    MathLib
-    MeshLib
-    MeshGeoToolsLib
-    logog
+    PUBLIC BaseLib GeoLib MathLib MeshLib logog
+    PRIVATE MeshGeoToolsLib
 )
 
 if(TARGET Eigen)
-- 
GitLab