在c语言进行工程构建的时候,有时候我们需要知道当前环境的CPU的字节序是大端还是小端模式,那么以下这段CMAKE脚本就可以用来帮助我们实现CPU字节序的自动检测。
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
if (${CMAKE_VERSION} VERSION_LESS "3.20")
include(TestBigEndian)
TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
if(IS_BIG_ENDIAN)
set(CMAKE_C_BYTE_ORDER BIG_ENDIAN)
else()
set(CMAKE_C_BYTE_ORDER LITTLE_ENDIAN)
endif()
else()
# 如果版本号大于3.20,则CMAKE已经内置包含CMAKE_C_BYTE_ORDER变量了
endif()
message(STATUS "BYTE ORDER: ${CMAKE_C_BYTE_ORDER}")