|
|
|
|
@@ -70,7 +70,7 @@ if (WIN32)
|
|
|
|
|
set (CMAKE_REQUIRED_FLAGS "-DWIN32_LEAN_AND_MEAN=1 -DNOGDI=1")
|
|
|
|
|
endif ()
|
|
|
|
|
set (${HDF_PREFIX}_HAVE_WIN32_API 1)
|
|
|
|
|
set (CMAKE_REQUIRED_LIBRARIES "ws2_32.lib;wsock32.lib")
|
|
|
|
|
set (HDF5_REQUIRED_LIBRARIES "ws2_32.lib;wsock32.lib")
|
|
|
|
|
if (NOT UNIX AND NOT MINGW)
|
|
|
|
|
set (WINDOWS 1)
|
|
|
|
|
set (CMAKE_REQUIRED_FLAGS "/DWIN32_LEAN_AND_MEAN=1 /DNOGDI=1")
|
|
|
|
|
@@ -109,84 +109,10 @@ endif ()
|
|
|
|
|
# END of WINDOWS Hard code Values
|
|
|
|
|
# ----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
if (CYGWIN)
|
|
|
|
|
set (${HDF_PREFIX}_HAVE_LSEEK64 0)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# Check for the math library "m"
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
if (NOT WINDOWS)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("m" ceil ${HDF_PREFIX}_HAVE_LIBM)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("dl" dlopen ${HDF_PREFIX}_HAVE_LIBDL)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("ws2_32" WSAStartup ${HDF_PREFIX}_HAVE_LIBWS2_32)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("wsock32" gethostbyname ${HDF_PREFIX}_HAVE_LIBWSOCK32)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
# UCB (BSD) compatibility library
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("ucb" gethostname ${HDF_PREFIX}_HAVE_LIBUCB)
|
|
|
|
|
|
|
|
|
|
# For other tests to use the same libraries
|
|
|
|
|
set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LINK_LIBS})
|
|
|
|
|
|
|
|
|
|
set (USE_INCLUDES "")
|
|
|
|
|
if (WINDOWS)
|
|
|
|
|
set (USE_INCLUDES ${USE_INCLUDES} "windows.h")
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
if (NOT WINDOWS)
|
|
|
|
|
TEST_BIG_ENDIAN (${HDF_PREFIX}_WORDS_BIGENDIAN)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
# For other specific tests, use this MACRO.
|
|
|
|
|
macro (HDF_FUNCTION_TEST OTHER_TEST)
|
|
|
|
|
if (NOT DEFINED ${HDF_PREFIX}_${OTHER_TEST})
|
|
|
|
|
set (MACRO_CHECK_FUNCTION_DEFINITIONS "-D${OTHER_TEST} ${CMAKE_REQUIRED_FLAGS}")
|
|
|
|
|
|
|
|
|
|
foreach (def
|
|
|
|
|
HAVE_SYS_TIME_H
|
|
|
|
|
HAVE_UNISTD_H
|
|
|
|
|
HAVE_SYS_TYPES_H
|
|
|
|
|
HAVE_SYS_SOCKET_H
|
|
|
|
|
)
|
|
|
|
|
if ("${${HDF_PREFIX}_${def}}")
|
|
|
|
|
set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}")
|
|
|
|
|
endif ()
|
|
|
|
|
endforeach ()
|
|
|
|
|
|
|
|
|
|
if (LARGEFILE)
|
|
|
|
|
set (MACRO_CHECK_FUNCTION_DEFINITIONS
|
|
|
|
|
"${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
|
|
|
|
|
)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
#message (STATUS "Performing ${OTHER_TEST}")
|
|
|
|
|
TRY_COMPILE (${OTHER_TEST}
|
|
|
|
|
${CMAKE_BINARY_DIR}
|
|
|
|
|
${HDF_RESOURCES_EXT_DIR}/HDFTests.c
|
|
|
|
|
COMPILE_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS}"
|
|
|
|
|
LINK_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}"
|
|
|
|
|
OUTPUT_VARIABLE OUTPUT
|
|
|
|
|
)
|
|
|
|
|
if (${OTHER_TEST})
|
|
|
|
|
set (${HDF_PREFIX}_${OTHER_TEST} 1 CACHE INTERNAL "Other test ${FUNCTION}")
|
|
|
|
|
message (STATUS "Performing Other Test ${OTHER_TEST} - Success")
|
|
|
|
|
else ()
|
|
|
|
|
message (STATUS "Performing Other Test ${OTHER_TEST} - Failed")
|
|
|
|
|
set (${HDF_PREFIX}_${OTHER_TEST} "" CACHE INTERNAL "Other test ${FUNCTION}")
|
|
|
|
|
file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
|
|
|
|
"Performing Other Test ${OTHER_TEST} failed with the following output:\n"
|
|
|
|
|
"${OUTPUT}\n"
|
|
|
|
|
)
|
|
|
|
|
endif ()
|
|
|
|
|
endif ()
|
|
|
|
|
endmacro ()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# Check for these functions before the time headers are checked
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
HDF_FUNCTION_TEST (STDC_HEADERS)
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# Check IF header file exists and add it to the list.
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
@@ -243,6 +169,91 @@ CHECK_INCLUDE_FILE_CONCAT ("memory.h" ${HDF_PREFIX}_HAVE_MEMORY_H)
|
|
|
|
|
CHECK_INCLUDE_FILE_CONCAT ("dlfcn.h" ${HDF_PREFIX}_HAVE_DLFCN_H)
|
|
|
|
|
CHECK_INCLUDE_FILE_CONCAT ("inttypes.h" ${HDF_PREFIX}_HAVE_INTTYPES_H)
|
|
|
|
|
CHECK_INCLUDE_FILE_CONCAT ("netinet/in.h" ${HDF_PREFIX}_HAVE_NETINET_IN_H)
|
|
|
|
|
# _Bool type support
|
|
|
|
|
CHECK_INCLUDE_FILE_CONCAT (stdbool.h ${HDF_PREFIX}_HAVE_STDBOOL_H)
|
|
|
|
|
|
|
|
|
|
## Check for non-standard extenstion quadmath.h
|
|
|
|
|
|
|
|
|
|
CHECK_INCLUDE_FILES(quadmath.h C_HAVE_QUADMATH)
|
|
|
|
|
if (${C_HAVE_QUADMATH})
|
|
|
|
|
set(${HDF_PREFIX}_HAVE_QUADMATH_H 1)
|
|
|
|
|
else ()
|
|
|
|
|
set(${HDF_PREFIX}_HAVE_QUADMATH_H 0)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
if (CYGWIN)
|
|
|
|
|
set (${HDF_PREFIX}_HAVE_LSEEK64 0)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# Check for the math library "m"
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
if (NOT WINDOWS)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("m" ceil ${HDF_PREFIX}_HAVE_LIBM)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("dl" dlopen ${HDF_PREFIX}_HAVE_LIBDL)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("ws2_32" WSAStartup ${HDF_PREFIX}_HAVE_LIBWS2_32)
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("wsock32" gethostbyname ${HDF_PREFIX}_HAVE_LIBWSOCK32)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
# UCB (BSD) compatibility library
|
|
|
|
|
CHECK_LIBRARY_EXISTS_CONCAT ("ucb" gethostname ${HDF_PREFIX}_HAVE_LIBUCB)
|
|
|
|
|
|
|
|
|
|
# For other tests to use the same libraries
|
|
|
|
|
set (HDF5_REQUIRED_LIBRARIES ${HDF5_REQUIRED_LIBRARIES} ${LINK_LIBS})
|
|
|
|
|
|
|
|
|
|
set (USE_INCLUDES "")
|
|
|
|
|
if (WINDOWS)
|
|
|
|
|
set (USE_INCLUDES ${USE_INCLUDES} "windows.h")
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
# For other specific tests, use this MACRO.
|
|
|
|
|
macro (HDF_FUNCTION_TEST OTHER_TEST)
|
|
|
|
|
if (NOT DEFINED ${HDF_PREFIX}_${OTHER_TEST})
|
|
|
|
|
set (MACRO_CHECK_FUNCTION_DEFINITIONS "-D${OTHER_TEST} ${CMAKE_REQUIRED_FLAGS}")
|
|
|
|
|
|
|
|
|
|
foreach (def
|
|
|
|
|
HAVE_SYS_TIME_H
|
|
|
|
|
HAVE_UNISTD_H
|
|
|
|
|
HAVE_SYS_TYPES_H
|
|
|
|
|
HAVE_SYS_SOCKET_H
|
|
|
|
|
)
|
|
|
|
|
if ("${${HDF_PREFIX}_${def}}")
|
|
|
|
|
set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}")
|
|
|
|
|
endif ()
|
|
|
|
|
endforeach ()
|
|
|
|
|
|
|
|
|
|
if (LARGEFILE)
|
|
|
|
|
set (MACRO_CHECK_FUNCTION_DEFINITIONS
|
|
|
|
|
"${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
|
|
|
|
|
)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
#message (STATUS "Performing ${OTHER_TEST}")
|
|
|
|
|
TRY_COMPILE (${OTHER_TEST}
|
|
|
|
|
${CMAKE_BINARY_DIR}
|
|
|
|
|
${HDF_RESOURCES_EXT_DIR}/HDFTests.c
|
|
|
|
|
COMPILE_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS}"
|
|
|
|
|
LINK_LIBRARIES "${HDF5_REQUIRED_LIBRARIES}"
|
|
|
|
|
OUTPUT_VARIABLE OUTPUT
|
|
|
|
|
)
|
|
|
|
|
if (${OTHER_TEST})
|
|
|
|
|
set (${HDF_PREFIX}_${OTHER_TEST} 1 CACHE INTERNAL "Other test ${FUNCTION}")
|
|
|
|
|
message (STATUS "Performing Other Test ${OTHER_TEST} - Success")
|
|
|
|
|
else ()
|
|
|
|
|
message (STATUS "Performing Other Test ${OTHER_TEST} - Failed")
|
|
|
|
|
set (${HDF_PREFIX}_${OTHER_TEST} "" CACHE INTERNAL "Other test ${FUNCTION}")
|
|
|
|
|
file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
|
|
|
|
"Performing Other Test ${OTHER_TEST} failed with the following output:\n"
|
|
|
|
|
"${OUTPUT}\n"
|
|
|
|
|
)
|
|
|
|
|
endif ()
|
|
|
|
|
endif ()
|
|
|
|
|
endmacro ()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# Check for these functions before the time headers are checked
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
HDF_FUNCTION_TEST (STDC_HEADERS)
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# Check for large file support
|
|
|
|
|
@@ -408,7 +419,6 @@ endif ()
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
# _Bool type support
|
|
|
|
|
CHECK_INCLUDE_FILE_CONCAT (stdbool.h ${HDF_PREFIX}_HAVE_STDBOOL_H)
|
|
|
|
|
if (HAVE_STDBOOL_H)
|
|
|
|
|
set (CMAKE_EXTRA_INCLUDE_FILES stdbool.h)
|
|
|
|
|
HDF_CHECK_TYPE_SIZE (bool ${HDF_PREFIX}_SIZEOF_BOOL)
|
|
|
|
|
@@ -580,7 +590,7 @@ if (WINDOWS)
|
|
|
|
|
${CMAKE_BINARY_DIR}
|
|
|
|
|
${HDF_RESOURCES_EXT_DIR}/HDFTests.c
|
|
|
|
|
COMPILE_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} ${MACRO_CHECK_FUNCTION_DEFINITIONS}"
|
|
|
|
|
LINK_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}"
|
|
|
|
|
LINK_LIBRARIES "${HDF5_REQUIRED_LIBRARIES}"
|
|
|
|
|
CMAKE_FLAGS "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES} -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}"
|
|
|
|
|
COMPILE_OUTPUT_VARIABLE OUTPUT
|
|
|
|
|
)
|
|
|
|
|
|