From da9c9f118f6b02accbfaeab38fb6af7ddf634c3d Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Wed, 10 Feb 2021 09:58:11 +0100
Subject: [PATCH] Replaced eigen Conan package with CPM.

The usage of CPMFindPackage instead of CPMAddPackage searches for
local installs of the package first and falls back to CPM if not
found.
---
 MathLib/CMakeLists.txt           |  1 +
 scripts/cmake/ConanSetup.cmake   |  1 -
 scripts/cmake/Dependencies.cmake | 11 +++++++++++
 scripts/cmake/Find.cmake         |  7 -------
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/MathLib/CMakeLists.txt b/MathLib/CMakeLists.txt
index 2a7ee1dddad..46588c75ecd 100644
--- a/MathLib/CMakeLists.txt
+++ b/MathLib/CMakeLists.txt
@@ -38,6 +38,7 @@ target_link_libraries(MathLib
         ${OpenMP_CXX_LIBRARIES}
         $<$<TARGET_EXISTS:LAPACK::LAPACK>:LAPACK::LAPACK>
         $<$<BOOL:${OGS_USE_LIS}>:${LIS_LIBRARIES}>
+        Eigen3::Eigen
     PRIVATE
         spdlog::spdlog
 )
diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 92182e4a01f..4dc1cde427c 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -34,7 +34,6 @@ include(${PROJECT_SOURCE_DIR}/scripts/cmake/conan/conan.cmake)
 
 set(CONAN_REQUIRES
     boost/${ogs.minimum_version.boost}@conan/stable
-    eigen/${ogs.minimum_version.eigen}
     vtk/${ogs.tested_version.vtk}@bilke/stable
     CACHE INTERNAL ""
 )
diff --git a/scripts/cmake/Dependencies.cmake b/scripts/cmake/Dependencies.cmake
index 9241876be3d..13083afd415 100644
--- a/scripts/cmake/Dependencies.cmake
+++ b/scripts/cmake/Dependencies.cmake
@@ -95,3 +95,14 @@ if (OGS_BUILD_PROCESS_ComponentTransport
         include(scripts/cmake/iphreeqc.cmake)
     endif()
 endif()
+
+CPMFindPackage(
+    NAME Eigen3
+    GITLAB_REPOSITORY libeigen/eigen
+    GIT_TAG ${ogs.minimum_version.eigen}
+    DOWNLOAD_ONLY YES
+)
+if(Eigen3_ADDED)
+    add_library(Eigen3::Eigen INTERFACE IMPORTED)
+    target_include_directories(Eigen3::Eigen SYSTEM INTERFACE ${Eigen3_SOURCE_DIR})
+endif()
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index f49ae383344..745ba7f2c53 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -82,13 +82,6 @@ else()
     include(${VTK_USE_FILE})
 endif()
 
-if(OGS_USE_CONAN)
-    set(EIGEN3_INCLUDE_DIR ${CONAN_INCLUDE_DIRS_EIGEN} CACHE INTERNAL "")
-else()
-    find_package(Eigen3 ${ogs.minimum_version.eigen} REQUIRED)
-endif()
-include_directories(SYSTEM ${EIGEN3_INCLUDE_DIR})
-
 if(OGS_USE_MFRONT)
     ## pthread, is a requirement of mfront ##
     set(CMAKE_THREAD_PREFER_PTHREAD ON)
-- 
GitLab