summaryrefslogtreecommitdiffstats
path: root/config/cmake/HDFUseFortran.cmake
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2022-09-03 00:31:29 (GMT)
committerGitHub <noreply@github.com>2022-09-03 00:31:29 (GMT)
commitc8fdd92cd4d53e5343b475b85c013de60ba13555 (patch)
tree6f852f5c3040bacbad3040fa00022955e78b63ee /config/cmake/HDFUseFortran.cmake
parent6e8aaab1b43be06b4fde60ad5bd583a8a08f882a (diff)
downloadhdf5-c8fdd92cd4d53e5343b475b85c013de60ba13555.zip
hdf5-c8fdd92cd4d53e5343b475b85c013de60ba13555.tar.gz
hdf5-c8fdd92cd4d53e5343b475b85c013de60ba13555.tar.bz2
Update CMake code to 3.18 minimum version (#2080)
* Update CMake code to 3.18 minimum version * Updated release note
Diffstat (limited to 'config/cmake/HDFUseFortran.cmake')
-rw-r--r--config/cmake/HDFUseFortran.cmake105
1 files changed, 10 insertions, 95 deletions
diff --git a/config/cmake/HDFUseFortran.cmake b/config/cmake/HDFUseFortran.cmake
index c96298f..61adffd 100644
--- a/config/cmake/HDFUseFortran.cmake
+++ b/config/cmake/HDFUseFortran.cmake
@@ -16,10 +16,8 @@
enable_language (Fortran)
set (HDF_PREFIX "H5")
-if (NOT CMAKE_VERSION VERSION_LESS "3.14.0")
- include (CheckFortranSourceRuns)
- include (CheckFortranSourceCompiles)
-endif ()
+include (CheckFortranSourceRuns)
+include (CheckFortranSourceCompiles)
#-------------------------------------------------------------------------------
# Fix Fortran flags if we are compiling statically on Windows using
@@ -119,98 +117,15 @@ set (ISO_C_BINDING_CODE
"
)
-if (NOT CMAKE_VERSION VERSION_LESS "3.14.0")
- if (HDF5_REQUIRED_LIBRARIES)
- set (CMAKE_REQUIRED_LIBRARIES "${HDF5_REQUIRED_LIBRARIES}")
- endif ()
- check_fortran_source_compiles (${SIZEOF_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_SIZEOF SRC_EXT f90)
- check_fortran_source_compiles (${C_SIZEOF_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_C_SIZEOF SRC_EXT f90)
- check_fortran_source_compiles (${STORAGE_SIZE_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_STORAGE_SIZE SRC_EXT f90)
- check_fortran_source_compiles (${ISO_FORTRAN_ENV_CODE} ${HDF_PREFIX}_HAVE_ISO_FORTRAN_ENV SRC_EXT f90)
- check_fortran_source_compiles (${REALISNOTDOUBLE_CODE} ${HDF_PREFIX}_FORTRAN_DEFAULT_REAL_NOT_DOUBLE SRC_EXT f90)
- check_fortran_source_compiles (${ISO_C_BINDING_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_ISO_C_BINDING SRC_EXT f90)
-else ()
- #-----------------------------------------------------------------------------
- # The provided CMake Fortran macros don't provide a general check function
- # so this one is used for a sizeof test.
- #-----------------------------------------------------------------------------
- macro (CHECK_FORTRAN_FEATURE FUNCTION CODE VARIABLE)
- if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15.0")
- message (VERBOSE "Testing Fortran ${FUNCTION}")
- endif ()
- if (HDF5_REQUIRED_LIBRARIES)
- set (CHECK_FUNCTION_EXISTS_ADD_LIBRARIES
- "-DLINK_LIBRARIES:STRING=${HDF5_REQUIRED_LIBRARIES}")
- else ()
- set (CHECK_FUNCTION_EXISTS_ADD_LIBRARIES)
- endif ()
- file (WRITE
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f90
- "${CODE}"
- )
- TRY_COMPILE (RESULT_VAR
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f90
- CMAKE_FLAGS "${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}"
- OUTPUT_VARIABLE OUTPUT
- )
-
- # if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15.0")
- # message (TRACE "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
- # message (TRACE "Test result ${OUTPUT}")
- # message (TRACE "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
- # endif ()
-
- if (${RESULT_VAR})
- set (${VARIABLE} 1 CACHE INTERNAL "Have Fortran function ${FUNCTION}")
- if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15.0")
- message (VERBOSE "Testing Fortran ${FUNCTION} - OK")
- endif ()
- file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Fortran ${FUNCTION} exists passed with the following output:\n"
- "${OUTPUT}\n\n"
- )
- else ()
- message (STATUS "Testing Fortran ${FUNCTION} - Fail")
- set (${VARIABLE} 0 CACHE INTERNAL "Have Fortran function ${FUNCTION}")
- file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the Fortran ${FUNCTION} exists failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif ()
- endmacro ()
-
- #-----------------------------------------------------------------------------
- # Configure Checks which require Fortran compilation must go in here
- # not in the main ConfigureChecks.cmake files, because if the user has
- # no Fortran compiler, problems arise.
- #
- # Be careful with leading spaces here, do not remove them.
- #-----------------------------------------------------------------------------
-
- # Check for Non-standard extension intrinsic function SIZEOF
- set (${HDF_PREFIX}_FORTRAN_HAVE_SIZEOF FALSE)
- CHECK_FORTRAN_FEATURE(sizeof_code ${SIZEOF_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_SIZEOF)
-
- # Check for F2008 standard intrinsic function C_SIZEOF
- set (${HDF_PREFIX}_FORTRAN_HAVE_C_SIZEOF FALSE)
- CHECK_FORTRAN_FEATURE(c_sizeof_code ${C_SIZEOF_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_C_SIZEOF)
-
- # Check for F2008 standard intrinsic function STORAGE_SIZE
- CHECK_FORTRAN_FEATURE(storage_size_code ${STORAGE_SIZE_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_STORAGE_SIZE)
-
- # Check for F2008 standard intrinsic module "ISO_FORTRAN_ENV"
- set (${HDF_PREFIX}_HAVE_ISO_FORTRAN_ENV FALSE)
- CHECK_FORTRAN_FEATURE(iso_fortran_env_code ${ISO_FORTRAN_ENV_CODE} ${HDF_PREFIX}_HAVE_ISO_FORTRAN_ENV)
-
- set (${HDF_PREFIX}_FORTRAN_DEFAULT_REAL_NOT_DOUBLE FALSE)
- CHECK_FORTRAN_FEATURE(realisnotdouble_code ${REALISNOTDOUBLE_CODE} ${HDF_PREFIX}_FORTRAN_DEFAULT_REAL_NOT_DOUBLE)
-
- #-----------------------------------------------------------------------------
- # Checks if the ISO_C_BINDING module meets all the requirements
- #-----------------------------------------------------------------------------
- set (${HDF_PREFIX}_FORTRAN_HAVE_ISO_C_BINDING FALSE)
- CHECK_FORTRAN_FEATURE(iso_c_binding_code ${ISO_C_BINDING_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_ISO_C_BINDING)
+if (HDF5_REQUIRED_LIBRARIES)
+ set (CMAKE_REQUIRED_LIBRARIES "${HDF5_REQUIRED_LIBRARIES}")
endif ()
+check_fortran_source_compiles (${SIZEOF_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_SIZEOF SRC_EXT f90)
+check_fortran_source_compiles (${C_SIZEOF_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_C_SIZEOF SRC_EXT f90)
+check_fortran_source_compiles (${STORAGE_SIZE_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_STORAGE_SIZE SRC_EXT f90)
+check_fortran_source_compiles (${ISO_FORTRAN_ENV_CODE} ${HDF_PREFIX}_HAVE_ISO_FORTRAN_ENV SRC_EXT f90)
+check_fortran_source_compiles (${REALISNOTDOUBLE_CODE} ${HDF_PREFIX}_FORTRAN_DEFAULT_REAL_NOT_DOUBLE SRC_EXT f90)
+check_fortran_source_compiles (${ISO_C_BINDING_CODE} ${HDF_PREFIX}_FORTRAN_HAVE_ISO_C_BINDING SRC_EXT f90)
#-----------------------------------------------------------------------------
# Add debug information (intel Fortran : JB)