Skip to content

Remove HDF5 Build Hacks #621

@henryleberre

Description

@henryleberre

While CMake ships its own FindHDF5, we had to create our own toolchain/cmake/FindHDF5.cmake to accommodate non-cooperative systems and compilers (afaik only Cray CCE). This issue arises again when we attempt to build the LLNL Silo dependency because it uses the built-in (CMake-provided) FindHDF5. To work around this, we patch
Silo to allow us to inject our toolchain/cmake/FindHDF5.cmake. This is terrible. See:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 111eb42..9e460f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,7 +68,7 @@ project(Silo VERSION ${SILO_VERSION} LANGUAGES CXX C)
###-----------------------------------------------------------------------------
# location for Silo CMake includes
###-----------------------------------------------------------------------------
-set(CMAKE_MODULE_PATH ${Silo_SOURCE_DIR}/CMake)
+list(APPEND CMAKE_MODULE_PATH "${Silo_SOURCE_DIR}/CMake")

"$<$<STREQUAL:${CMAKE_Fortran_COMPILER_ID},Cray>:-DCMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/../cmake>"

As a result of this, HDF5 is the last of our dependencies that we always build even when a compatible version is present on the system. This is also why the --sys-hdf5 command-line argument is still supported by ./mfc.sh but --sys-fftw and --sys-silo are no longer accepted.

Good luck to whoever is tasked with resolving this in the future. I do not think this will ever be fixed but I would like to be proven wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions