| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # - Define macro to determine endian type
- # Check if the system is big endian or little endian
- # TEST_BIG_ENDIAN(VARIABLE)
- # VARIABLE - variable to store the result to
- #
- MACRO(TEST_BIG_ENDIAN VARIABLE)
- SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1)
- IF(NOT DEFINED ${VARIABLE})
- IF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
- TRY_RUN(${VARIABLE} HAVE_${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_ROOT}/Modules/TestBigEndian.c
- OUTPUT_VARIABLE OUTPUT)
- IF("${VARIABLE}" STREQUAL "FAILED_TO_RUN")
- MESSAGE(SEND_ERROR "TestBigEndian Failed to run with output: ${OUTPUT}")
- ENDIF("${VARIABLE}" STREQUAL "FAILED_TO_RUN")
- MESSAGE(STATUS "Check if the system is big endian")
- IF(HAVE_${VARIABLE})
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining the endianes of the system passed. The system is ")
- IF(${VARIABLE})
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "big endian")
- MESSAGE(STATUS "Check if the system is big endian - big endian")
- ELSE(${VARIABLE})
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "little endian")
- MESSAGE(STATUS "Check if the system is big endian - little endian")
- ENDIF(${VARIABLE})
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Test produced following output:\n${OUTPUT}\n\n")
- ELSE(HAVE_${VARIABLE})
- FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining the endianes of the system failed with the following output:\n${OUTPUT}\n\n")
- MESSAGE("Check if the system is big endian - failed")
- ENDIF(HAVE_${VARIABLE})
- ENDIF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
- ENDIF(NOT DEFINED ${VARIABLE})
- SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS)
- ENDMACRO(TEST_BIG_ENDIAN)
|