1#
2# Check if the system supports 64 bit streams
3#
4# CHECK_FOR_64BIT_STREAMS - macro which checks the existence of 64 bit streams
5# VARIABLE - variable to return result
6#
7
8MACRO(CHECK_FOR_64BIT_STREAMS VARIABLE)
9  IF(NOT DEFINED "${VARIABLE}")
10    SET(MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS ${CMAKE_REQUIRED_FLAGS})
11    IF(CMAKE_NO_ANSI_STREAM_HEADERS)
12      SET(MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS
13        "${MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS} -DNO_ANSI")
14    ENDIF()
15    IF(SIZEOF_LONG_LONG)
16      SET(MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS
17        "${MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS} -DSIZEOF_LONG_LONG")
18    ENDIF()
19    IF(SIZEOF___INT64)
20      SET(MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS
21        "${MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS} -DSIZEOF___INT64")
22    ENDIF()
23    MESSAGE(STATUS "Check if system supports 64 bit streams")
24    TRY_COMPILE(${VARIABLE}
25               ${CMAKE_BINARY_DIR}
26               ${xdmf2_SOURCE_DIR}/CMake/CheckFor64BitStreams.cxx
27               CMAKE_FLAGS
28               -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FOR_64BIT_STREAMS_FLAGS}
29               OUTPUT_VARIABLE OUTPUT)
30    IF(${VARIABLE})
31      MESSAGE(STATUS "Check if system supports 64 bit streams - yes")
32      SET(${VARIABLE} 1 CACHE INTERNAL "Whether streams support 64-bit types")
33    ELSE()
34      MESSAGE(STATUS "Check if system supports 64 bit streams - no")
35      SET(${VARIABLE} "" CACHE INTERNAL "Whether streams support 64-bit types")
36      FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
37        "Determining if the system supports 64 bit streams "
38        "failed with the following output:\n"
39        "${OUTPUT}\n")
40    ENDIF()
41  ENDIF()
42ENDMACRO()
43