diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake index 94f0922b3fe8256c9847cbc5f72949ffdf0683e9..15fec1015a5f370dc1e90d4bf16c6bd2250c5bb9 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 f55612416218b523b437da4c5a9983624e509ff4..82d261c0b64868c838874fd6b43600ac1af59557 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 1f973c5228301fa9c63b3ae73331eb4819f496f8..0000000000000000000000000000000000000000 --- 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 0dffb933ddff37f276a38eb8b7f3ee9fd12dbee0..d3d247301ff7caf52478cb47372c9046bd95aeed 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": {