From 94f9ebf8b223186bb3af9e462c19a27ca371dbea Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Wed, 27 Feb 2019 15:30:43 +0100
Subject: [PATCH] [MatL] Add OgsMFrontBehaviour library for .mfront.

All of the OGS-tested mfront files are compiled in a single behaviour
library, which is convenient for testing.
---
 MaterialLib/CMakeLists.txt                    | 12 ++++++----
 MaterialLib/SolidModels/MFront/CMakeLists.txt | 24 ++++++++++---------
 2 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/MaterialLib/CMakeLists.txt b/MaterialLib/CMakeLists.txt
index 6eb3884711e..548d6d176f0 100644
--- a/MaterialLib/CMakeLists.txt
+++ b/MaterialLib/CMakeLists.txt
@@ -29,7 +29,9 @@ append_source_files(SOURCES
                     PorousMedium/UnsaturatedProperty/RelativePermeability)
 append_source_files(SOURCES TwoPhaseModels)
 
-add_subdirectory(SolidModels/MFront)
+if(OGS_USE_MFRONT)
+    add_subdirectory(SolidModels/MFront)
+endif()
 
 add_library(MaterialLib ${SOURCES})
 if(BUILD_SHARED_LIBS)
@@ -40,9 +42,11 @@ include(GenerateExportHeader)
 generate_export_header(MaterialLib)
 target_include_directories(MaterialLib PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
 
-target_link_libraries(MaterialLib
-                      PUBLIC MaterialLib_SolidModels_MFront
-                      PRIVATE MathLib MeshLib ParameterLib)
+target_link_libraries(MaterialLib PRIVATE MathLib MeshLib ParameterLib)
+
+if(OGS_USE_MFRONT)
+    target_link_libraries(MaterialLib PUBLIC MaterialLib_SolidModels_MFront)
+endif()
 
 if(OGS_USE_PCH)
     cotire(MaterialLib)
diff --git a/MaterialLib/SolidModels/MFront/CMakeLists.txt b/MaterialLib/SolidModels/MFront/CMakeLists.txt
index 05b2a276d8e..5fc748eca01 100644
--- a/MaterialLib/SolidModels/MFront/CMakeLists.txt
+++ b/MaterialLib/SolidModels/MFront/CMakeLists.txt
@@ -1,8 +1,6 @@
 set(SOURCES CreateMFront.cpp CreateMFront.h)
 
-if(OGS_USE_MFRONT)
-    list(APPEND SOURCES MFront.cpp MFront.h)
-endif()
+list(APPEND SOURCES MFront.cpp MFront.h)
 
 add_library(MaterialLib_SolidModels_MFront ${SOURCES})
 
@@ -12,13 +10,17 @@ if(BUILD_SHARED_LIBS)
 endif()
 
 target_link_libraries(MaterialLib_SolidModels_MFront
-                      PUBLIC BaseLib NumLib logog
+                      PUBLIC BaseLib NumLib logog OgsMFrontBehaviour
                       PRIVATE MathLib MeshLib)
 
-if(OGS_USE_MFRONT)
-    target_include_directories(MaterialLib_SolidModels_MFront
-                               PUBLIC ${MGIS_INCLUDE_DIR})
-    target_link_libraries(MaterialLib_SolidModels_MFront PUBLIC ${MGIS_LIBRARY})
-    target_compile_definitions(MaterialLib_SolidModels_MFront PRIVATE
-                               OGS_USE_MFRONT)
-endif()
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
+                      "${PROJECT_SOURCE_DIR}/ThirdParty/MGIS")
+include(cmake/modules/tfel)
+mfront_behaviours_check_library(OgsMFrontBehaviour Elasticity)
+
+target_include_directories(MaterialLib_SolidModels_MFront
+                           PUBLIC ThirdParty/MGIS/include)
+target_link_libraries(MaterialLib_SolidModels_MFront
+                      PUBLIC MFrontGenericInterface)
+target_compile_definitions(MaterialLib_SolidModels_MFront PRIVATE
+                           OGS_USE_MFRONT)
-- 
GitLab