From b2aa7978bd85d3568f325f92ef8a848ff78331ba Mon Sep 17 00:00:00 2001 From: Jordan Henderson Date: Mon, 24 Jun 2024 16:21:56 -0500 Subject: [PATCH] Check for MSVC types --- config/cmake/ConfigureChecks.cmake | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index f0c822fa7f9..e0603916e33 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -824,6 +824,19 @@ HDF_CHECK_TYPE_SIZE ("float _Complex" ${HDF_PREFIX}_SIZEOF_FLOAT_COMPLEX) HDF_CHECK_TYPE_SIZE ("double _Complex" ${HDF_PREFIX}_SIZEOF_DOUBLE_COMPLEX) HDF_CHECK_TYPE_SIZE ("long double _Complex" ${HDF_PREFIX}_SIZEOF_LONG_DOUBLE_COMPLEX) +if (MSVC AND NOT ${HDF_PREFIX}_SIZEOF_FLOAT_COMPLEX AND NOT ${HDF_PREFIX}_SIZEOF_DOUBLE_COMPLEX + AND NOT ${HDF_PREFIX}_SIZEOF_LONG_DOUBLE_COMPLEX) + # If using MSVC, the _Complex types (if available) are _Fcomplex, _Dcomplex and _Lcomplex. + # The standard types are checked for first in case MSVC uses them in the future or in case + # the compiler used is simulating MSVC and uses the standard types. + unset (${HDF_PREFIX}_SIZEOF_FLOAT_COMPLEX CACHE) + unset (${HDF_PREFIX}_SIZEOF_DOUBLE_COMPLEX CACHE) + unset (${HDF_PREFIX}_SIZEOF_LONG_DOUBLE_COMPLEX CACHE) + HDF_CHECK_TYPE_SIZE ("_Fcomplex" ${HDF_PREFIX}_SIZEOF_FLOAT_COMPLEX) + HDF_CHECK_TYPE_SIZE ("_Dcomplex" ${HDF_PREFIX}_SIZEOF_DOUBLE_COMPLEX) + HDF_CHECK_TYPE_SIZE ("_Lcomplex" ${HDF_PREFIX}_SIZEOF_LONG_DOUBLE_COMPLEX) +endif () + if (${HDF_PREFIX}_SIZEOF_FLOAT_COMPLEX AND ${HDF_PREFIX}_SIZEOF_DOUBLE_COMPLEX AND ${HDF_PREFIX}_SIZEOF_LONG_DOUBLE_COMPLEX) # Check if __STDC_NO_COMPLEX__ macro is defined, in which case complex number