TestBigEndian

已弃用,自版本 3.20 起: 已被 CMAKE_<LANG>_BYTE_ORDER 变量取代。

此模块提供了一个命令来检查目标架构的字节序(byte order)。

在 CMake 项目中加载此模块,使用

include(TestBigEndian)

命令

此模块提供以下命令

test_big_endian

检查目标架构是大端还是小端

test_big_endian(<var>)

此命令会将 1 或 0 存储在变量 <var> 中,指示目标架构是大端还是小端。

使用此命令时,CMake 项目中至少必须启用一种支持的语言。

支持的语言是 C, CXX

自版本 3.20 起已更改: 此命令现在主要是 CMAKE_<LANG>_BYTE_ORDER 的包装器,其中还支持 OBJC, OBJCXXCUDA 语言。

示例

示例:检查字节序

使用此模块检查目标架构的字节序,并将结果存储在 CMake 变量 WORDS_BIGENDIAN 中。

include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)

示例:检查新代码中的字节序

从 CMake 3.20 开始,此模块应被 CMAKE_<LANG>_BYTE_ORDER 变量替换。例如,在一个项目中,如果 C 语言是启用的语言之一:

if(CMAKE_C_BYTE_ORDER STREQUAL "BIG_ENDIAN")
  set(WORDS_BIGENDIAN TRUE)
elseif(CMAKE_C_BYTE_ORDER STREQUAL "LITTLE_ENDIAN")
  set(WORDS_BIGENDIAN FALSE)
else()
  set(WORDS_BIGENDIAN FALSE)
  message(WARNING "Endianness could not be determined.")
endif()