-
Notifications
You must be signed in to change notification settings - Fork 121
Description
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:
MFC/toolchain/dependencies/Silo.patch
Lines 10 to 19 in 63c79cb
| 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") |
MFC/toolchain/dependencies/CMakeLists.txt
Line 80 in 63c79cb
| "$<$<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.