From 42db96b95dcf5ce2b765068aa3b95e831f091abd Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Mon, 22 Feb 2021 15:17:06 +0100 Subject: [PATCH] Replaced hdf5 Conan module with CPM. --- scripts/cmake/ConanSetup.cmake | 9 ------ scripts/cmake/Dependencies.cmake | 31 ++++++++++++++++----- scripts/cmake/conan/win-hdf5/FindHDF5.cmake | 14 ---------- web/data/versions.json | 2 -- 4 files changed, 24 insertions(+), 32 deletions(-) delete mode 100644 scripts/cmake/conan/win-hdf5/FindHDF5.cmake diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake index 94f0922b3fe..15fec1015a5 100644 --- a/scripts/cmake/ConanSetup.cmake +++ b/scripts/cmake/ConanSetup.cmake @@ -54,20 +54,11 @@ endif() if(OGS_USE_XDMF) list(APPEND CONAN_REQUIRES - hdf5/${ogs.tested_version.hdf5} libxml2/${ogs.tested_version.libxml2} ) if(UNIX AND NOT APPLE) list(APPEND CONAN_OPTIONS libxml2:iconv=False) endif() - if(MSVC) - # Hack: Conan HDF5 not found on Windows - # Use custom FindHDF5 with forced values from Conan - list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/scripts/cmake/conan/win-hdf5") - else() - # Hack: Suppress hdf5 compiler wrapper checks - set(HDF5_C_COMPILER_EXECUTABLE "OFF" CACHE INTERNAL "") - endif() endif() if(OGS_USE_PETSC) diff --git a/scripts/cmake/Dependencies.cmake b/scripts/cmake/Dependencies.cmake index f5561241621..82d261c0b64 100644 --- a/scripts/cmake/Dependencies.cmake +++ b/scripts/cmake/Dependencies.cmake @@ -127,6 +127,28 @@ endif() if(OGS_USE_XDMF) find_package(ZLIB REQUIRED) # ZLIB is a HDF5 dependency + 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" + "BUILD_TESTING 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" + ) + if(hdf5_ADDED) + target_include_directories(hdf5-static INTERFACE ${hdf5_BINARY_DIR}) + list(APPEND DISABLE_WARNINGS_TARGETS hdf5-static) + endif() + CPMAddPackage( NAME xdmf VERSION 3.0.0 @@ -143,12 +165,7 @@ if(OGS_USE_XDMF) find_package(Iconv REQUIRED) endif() - if(MSVC AND OGS_USE_CONAN) - # Hack: Conan HDF5 not found on Windows - target_link_libraries(OgsXdmf ${CONAN_LIBS}) - else() - target_link_libraries(OgsXdmf Boost::boost ${Iconv_LIBRARIES} ZLIB::ZLIB) - endif() + target_link_libraries(OgsXdmf Boost::boost ${Iconv_LIBRARIES} ZLIB::ZLIB) target_include_directories(OgsXdmfCore PUBLIC ${xdmf_SOURCE_DIR}/core @@ -157,7 +174,7 @@ if(OGS_USE_XDMF) ${xdmf_SOURCE_DIR}/CMake/VersionSuite ) find_package(LibXml2 REQUIRED) # LibXml2 is a XdmfCore dependency - target_link_libraries(OgsXdmfCore PUBLIC LibXml2::LibXml2) + target_link_libraries(OgsXdmfCore PUBLIC LibXml2::LibXml2 hdf5-static) set_target_properties(OgsXdmf OgsXdmfCore PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR} diff --git a/scripts/cmake/conan/win-hdf5/FindHDF5.cmake b/scripts/cmake/conan/win-hdf5/FindHDF5.cmake deleted file mode 100644 index 1f973c52283..00000000000 --- a/scripts/cmake/conan/win-hdf5/FindHDF5.cmake +++ /dev/null @@ -1,14 +0,0 @@ -if(HDF5_FOUND) - return() -endif() - -set(HDF5_FOUND TRUE CACHE INTERNAL "") -set(HDF5_VERSION "${ogs.tested_version.hdf5}" CACHE INTERNAL "") -set(HDF5_DEFINITIONS "" CACHE INTERNAL "") -set(HDF5_INCLUDE_DIRS ${CONAN_INCLUDE_DIRS_HDF5} CACHE INTERNAL "") -foreach(LIB ${CONAN_LIBS_HDF5}) - find_library(HDF5_LIB NAMES ${LIB} PATHS ${CONAN_LIB_DIRS_HDF5}) - list(APPEND HDF5_LIBRARIES ${HDF5_LIB}) -endforeach() -set(HDF5_LIBRARIES ${HDF5_LIBRARIES} CACHE INTERNAL "") -message(STATUS "Found HDF5 ${ogs.tested_version.hdf5} via Conan: ${CONAN_HDF5_ROOT}") diff --git a/web/data/versions.json b/web/data/versions.json index 0dffb933ddf..d3d247301ff 100644 --- a/web/data/versions.json +++ b/web/data/versions.json @@ -24,8 +24,6 @@ }, "tested_version": { "vtk": "8.2.0", - "hdf5": "1.12.0", - "libxml2": "2.9.10", "ubuntu": "20.04" }, "ctest": { -- GitLab