From 6d33da99d41ce858ef95db566cd83c05b2a7f945 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Mon, 27 Jan 2025 20:15:18 +0100 Subject: [PATCH] Change: [CMake] use CMAKE_CXX_BYTE_ORDER for EndianCheck --- cmake/Endian.cmake | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/cmake/Endian.cmake b/cmake/Endian.cmake index 3bfba653ca..bb2ee9d03a 100644 --- a/cmake/Endian.cmake +++ b/cmake/Endian.cmake @@ -3,12 +3,21 @@ # add_endian_definition() # function(add_endian_definition) - include(TestBigEndian) - TEST_BIG_ENDIAN(IS_BIG_ENDIAN) + if(CMAKE_VERSION VERSION_LESS "3.20.0") + include(TestBigEndian) + TEST_BIG_ENDIAN(IS_BIG_ENDIAN) - if(IS_BIG_ENDIAN) - add_definitions(-DTTD_ENDIAN=TTD_BIG_ENDIAN) + if(IS_BIG_ENDIAN) + add_definitions(-DTTD_ENDIAN=TTD_BIG_ENDIAN) + else() + add_definitions(-DTTD_ENDIAN=TTD_LITTLE_ENDIAN) + endif() else() - add_definitions(-DTTD_ENDIAN=TTD_LITTLE_ENDIAN) + # Since CMake 3.20, the TestBigEndian module is deprecated and the byte order is available directly. + if(CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN" OR CMAKE_OBJCXX_BYTE_ORDER STREQUAL "BIG_ENDIAN") + add_definitions(-DTTD_ENDIAN=TTD_BIG_ENDIAN) + else() + add_definitions(-DTTD_ENDIAN=TTD_LITTLE_ENDIAN) + endif() endif() endfunction()