summaryrefslogtreecommitdiff
path: root/Tests/RunCMake/ABI/CXX.cmake
blob: 231000262be153856b6748aea1c4f9412cdf498d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
enable_language(CXX)
if(NOT CMAKE_CXX_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$")
  if(CMAKE_OSX_ARCHITECTURES MATCHES ";ppc|ppc;")
    return()
  endif()
  message(FATAL_ERROR "CMAKE_CXX_BYTE_ORDER has unexpected value '${CMAKE_CXX_BYTE_ORDER}'")
endif()

include(TestBigEndian)
test_big_endian(IS_BIG_ENDIAN)
if(IS_BIG_ENDIAN AND NOT CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN")
  message(FATAL_ERROR "test_big_endian result does not match ABI result")
endif()

# Test legacy check.
set(byte_order "${CMAKE_CXX_BYTE_ORDER}")
unset(CMAKE_CXX_BYTE_ORDER)
include(TestBigEndian)
test_big_endian(IS_BIG)
if(IS_BIG AND NOT byte_order STREQUAL "BIG_ENDIAN")
  message(FATAL_ERROR "test_big_endian result does not match ABI result")
endif()