From d0fcff8aeb9e312b9d3e1973a19bd11b77abccef Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Thu, 1 Jul 2021 15:20:24 +0200
Subject: [PATCH] [cmake] Builds tfel via ExternalProject_Add().

- Removes tfel as a Conan dependency
- To discuss: Ignores system-installed tfel
---
 scripts/cmake/ConanSetup.cmake   |  5 -----
 scripts/cmake/Dependencies.cmake | 14 ++++++++++++++
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 8870d08c2bc..0e6e7ed38b3 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -14,7 +14,6 @@ endif()
 if(NOT CONAN_CMD
    AND (OGS_USE_PETSC
         OR OGS_USE_LIS
-        OR OGS_USE_MFRONT
         OR OGS_BUILD_GUI
        )
 )
@@ -50,10 +49,6 @@ if(OGS_USE_LIS)
     set(CONAN_REQUIRES ${CONAN_REQUIRES} lis/1.7.37@bilke/stable)
 endif()
 
-if(OGS_USE_MFRONT)
-    set(CONAN_REQUIRES ${CONAN_REQUIRES} tfel/${ogs.minimum_version.tfel-rliv}@bilke/testing)
-endif()
-
 if(OGS_BUILD_GUI)
     set(QT_VERSION ${ogs.minimum_version.qt})
     if(UNIX)
diff --git a/scripts/cmake/Dependencies.cmake b/scripts/cmake/Dependencies.cmake
index bf99342b6ca..203cb21c3f5 100644
--- a/scripts/cmake/Dependencies.cmake
+++ b/scripts/cmake/Dependencies.cmake
@@ -1,3 +1,16 @@
+include(BuildExternalProject)
+
+if(OGS_USE_MFRONT)
+    if(NOT _MFRONT_TFEL_FOUND)
+        BuildExternalProject(
+            TFEL GIT_REPOSITORY https://github.com/thelfer/tfel.git GIT_TAG
+            rliv-${ogs.minimum_version.tfel-rliv}
+        )
+    endif()
+    set(ENV{TFELHOME} ${PROJECT_BINARY_DIR}/external/build_TFEL)
+    list(APPEND CMAKE_INSTALL_RPATH $ENV{TFELHOME}/${CMAKE_INSTALL_LIBDIR})
+endif()
+
 set(CMAKE_FOLDER ThirdParty)
 
 # ccache
@@ -126,6 +139,7 @@ if(OGS_USE_MFRONT)
     if(MGIS_ADDED)
         set_target_properties(MFrontGenericInterface PROPERTIES CXX_STANDARD 11)
         list(APPEND DISABLE_WARNINGS_TARGETS MFrontGenericInterface)
+        set(_MFRONT_TFEL_FOUND ON CACHE INTERNAL "")
     endif()
 endif()
 
-- 
GitLab