CMake: Fix Fortran cross-compilation support

Refactor the cross-compilation infrastructure to rely on the standard
CMAKE_CROSSCOMPILING_EMULATOR variable instead of the custom
CROSSCOMPILING_PATH environment hack.

Key changes:
- Removed `ENVIRONMENT "${CROSSCOMPILING_PATH}"` from all test definitions.
- Updated custom commands (e.g., H5match_types, H5_gen) to invoke the
  emulator explicitly when cross-compiling.
- Updated ConfigureChecks.cmake and HDF5UseFortran.cmake to enable
  `try_run` checks when an emulator is defined.
- Added config/toolchain/mingw-w64-x86-64-wine.sh wrapper to automatically
  locate MinGW runtime libraries (like libgfortran) for Wine execution.
- Cleaned up toolchain files to remove hardcoded emulator paths, deferring
  configuration to the build environment.
This commit is contained in:
Julien Schueller
2026-02-13 14:45:02 -06:00
committed by GitHub
parent 3748e4308e
commit d58638be09
60 changed files with 110 additions and 379 deletions
-3
View File
@@ -223,7 +223,6 @@ if (H5EXAMPLE_BUILD_TESTING)
add_test (NAME ${EXAMPLE_VARNAME}_${testname} COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_${testname}>)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
else ()
add_test (
@@ -240,7 +239,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -257,7 +255,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
-3
View File
@@ -228,7 +228,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname}-ERR PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_${testname}
@@ -254,7 +253,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
set (last_test "${EXAMPLE_VARNAME}_${testname}")
@@ -313,7 +311,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
set (last_test "${EXAMPLE_VARNAME}_H5DUMP-${testname}")
endif ()
-7
View File
@@ -249,7 +249,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -266,7 +265,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -304,7 +302,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -335,7 +332,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -352,7 +348,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname}1 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_H5DUMP-${testname}2
@@ -368,7 +363,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname}2 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_H5DUMP-${testname}1
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -397,7 +391,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endmacro ()
-3
View File
@@ -370,7 +370,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -387,7 +386,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -416,7 +414,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endmacro ()
-2
View File
@@ -144,7 +144,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -161,7 +160,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
-8
View File
@@ -215,7 +215,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -232,7 +231,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -261,7 +259,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -279,7 +276,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -302,12 +298,10 @@ if (H5EXAMPLE_BUILD_TESTING)
add_test (NAME ${EXAMPLE_VARNAME}_h5ex_lite1 COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_h5ex_lite1>)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite1 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (NAME ${EXAMPLE_VARNAME}_h5ex_lite2 COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_h5ex_lite2>)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite2 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite1
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
else ()
add_test (
@@ -324,7 +318,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite1 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_h5ex_lite2
@@ -340,7 +333,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite2 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite1
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
-1
View File
@@ -101,7 +101,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_tutr_${testname} PROPERTIES
FIXTURES_REQUIRED clear_${EXAMPLE_VARNAME}_tutr
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_tutr_${testname} PROPERTIES DEPENDS ${last_test})