From 13f609fd7ccd5357029fecfb2b6fd1cad29082dc Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Thu, 22 Jul 2021 14:53:18 +0200
Subject: [PATCH] [cmake] Use Conan HDF5 when using NetCDF.

---
 scripts/cmake/ConanSetup.cmake   |  2 +-
 scripts/cmake/Dependencies.cmake | 71 +++++++++++++++++---------------
 2 files changed, 39 insertions(+), 34 deletions(-)

diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 23700f41b24..95b79c392ac 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -88,7 +88,7 @@ conan_cmake_run(
     OPTIONS ${CONAN_OPTIONS}
     BUILD ${OGS_CONAN_BUILD}
     IMPORTS ${CONAN_IMPORTS}
-    GENERATORS virtualrunenv
+    GENERATORS virtualrunenv cmake_find_package
     BUILD_TYPE ${CONAN_BUILD_TYPE}
 )
 
diff --git a/scripts/cmake/Dependencies.cmake b/scripts/cmake/Dependencies.cmake
index a1a61fae4d4..c088c2fa067 100644
--- a/scripts/cmake/Dependencies.cmake
+++ b/scripts/cmake/Dependencies.cmake
@@ -169,44 +169,49 @@ CPMAddPackage(
     OPTIONS "BUILD_SHARED_LIBS OFF"
 )
 
-# ZLIB is a HDF5 dependency
-CPMFindPackage(
-    NAME ZLIB
-    GITHUB_REPOSITORY madler/zlib
-    VERSION 1.2.11
-    EXCLUDE_FROM_ALL YES
-)
-if(ZLIB_ADDED)
-    add_library(ZLIB::ZLIB ALIAS zlibstatic)
-endif()
-
 if(OGS_USE_MPI)
     set(_hdf5_options "HDF5_ENABLE_PARALLEL ON")
 endif()
 
 string(REPLACE "." "_" HDF5_TAG ${ogs.minimum_version.hdf5})
-CPMFindPackage(
-    NAME HDF5
-    GITHUB_REPOSITORY HDFGroup/hdf5
-    GIT_TAG hdf5-${HDF5_TAG}
-    VERSION ${ogs.minimum_version.hdf5}
-    OPTIONS "HDF5_EXTERNALLY_CONFIGURED 1"
-            "HDF5_GENERATE_HEADERS OFF"
-            "HDF5_BUILD_TOOLS OFF"
-            "HDF5_BUILD_EXAMPLES OFF"
-            "HDF5_BUILD_HL_LIB OFF"
-            "HDF5_BUILD_FORTRAN OFF"
-            "HDF5_BUILD_CPP_LIB OFF"
-            "HDF5_BUILD_JAVA OFF"
-            ${_hdf5_options}
-    EXCLUDE_FROM_ALL YES
-)
-if(HDF5_ADDED)
-    target_include_directories(hdf5-static INTERFACE ${HDF5_BINARY_DIR})
-    list(APPEND DISABLE_WARNINGS_TARGETS hdf5-static)
-    set(HDF5_LIBRARIES hdf5-static)
-    set(HDF5_C_INCLUDE_DIR ${HDF5_SOURCE_DIR})
-    set(HDF5_INCLUDE_DIR ${HDF5_SOURCE_DIR})
+if(OGS_USE_NETCDF)
+    list(APPEND CMAKE_MODULE_PATH ${PROJECT_BINARY_DIR})
+    find_package(HDF5 REQUIRED)
+else()
+    # ZLIB is a HDF5 dependency
+    CPMFindPackage(
+        NAME ZLIB
+        GITHUB_REPOSITORY madler/zlib
+        VERSION 1.2.11
+        EXCLUDE_FROM_ALL YES
+    )
+    if(ZLIB_ADDED)
+        add_library(ZLIB::ZLIB ALIAS zlibstatic)
+    endif()
+
+    CPMFindPackage(
+        NAME HDF5
+        GITHUB_REPOSITORY HDFGroup/hdf5
+        GIT_TAG hdf5-${HDF5_TAG}
+        VERSION ${ogs.minimum_version.hdf5}
+        OPTIONS "HDF5_EXTERNALLY_CONFIGURED 1"
+                "HDF5_GENERATE_HEADERS OFF"
+                "HDF5_BUILD_TOOLS OFF"
+                "HDF5_BUILD_EXAMPLES OFF"
+                "HDF5_BUILD_HL_LIB OFF"
+                "HDF5_BUILD_FORTRAN OFF"
+                "HDF5_BUILD_CPP_LIB OFF"
+                "HDF5_BUILD_JAVA OFF"
+                ${_hdf5_options}
+        EXCLUDE_FROM_ALL YES
+    )
+    if(HDF5_ADDED)
+        target_include_directories(hdf5-static INTERFACE ${HDF5_BINARY_DIR})
+        list(APPEND DISABLE_WARNINGS_TARGETS hdf5-static)
+        set(HDF5_LIBRARIES hdf5-static)
+        set(HDF5_C_INCLUDE_DIR ${HDF5_SOURCE_DIR})
+        set(HDF5_INCLUDE_DIR ${HDF5_SOURCE_DIR})
+    endif()
 endif()
 
 set(XDMF_LIBNAME OgsXdmf CACHE STRING "")
-- 
GitLab