diff options
Diffstat (limited to 'Tests/RunCMake/ABI')
-rw-r--r-- | Tests/RunCMake/ABI/C-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/C.cmake | 22 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/CUDA.cmake | 13 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/CXX-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/CXX.cmake | 22 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/OBJC.cmake | 13 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/OBJCXX.cmake | 13 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/RunCMakeTest.cmake | 15 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt | 8 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake | 2 |
12 files changed, 114 insertions, 0 deletions
diff --git a/Tests/RunCMake/ABI/C-stdout.txt b/Tests/RunCMake/ABI/C-stdout.txt new file mode 100644 index 0000000..5b67b84 --- /dev/null +++ b/Tests/RunCMake/ABI/C-stdout.txt @@ -0,0 +1 @@ +-- Check if the system is big endian diff --git a/Tests/RunCMake/ABI/C.cmake b/Tests/RunCMake/ABI/C.cmake new file mode 100644 index 0000000..92f5da4 --- /dev/null +++ b/Tests/RunCMake/ABI/C.cmake @@ -0,0 +1,22 @@ +enable_language(C) +if(NOT CMAKE_C_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") + if(CMAKE_OSX_ARCHITECTURES MATCHES ";ppc|ppc;") + return() + endif() + message(FATAL_ERROR "CMAKE_C_BYTE_ORDER has unexpected value '${CMAKE_C_BYTE_ORDER}'") +endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_C_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_C_BYTE_ORDER}") +unset(CMAKE_C_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() diff --git a/Tests/RunCMake/ABI/CMakeLists.txt b/Tests/RunCMake/ABI/CMakeLists.txt new file mode 100644 index 0000000..ab1a20c --- /dev/null +++ b/Tests/RunCMake/ABI/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.19) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/ABI/CUDA.cmake b/Tests/RunCMake/ABI/CUDA.cmake new file mode 100644 index 0000000..8ede3a9 --- /dev/null +++ b/Tests/RunCMake/ABI/CUDA.cmake @@ -0,0 +1,13 @@ +enable_language(CUDA) +if(NOT CMAKE_CUDA_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") + if(CMAKE_OSX_ARCHITECTURES MATCHES ";ppc|ppc;") + return() + endif() + message(FATAL_ERROR "CMAKE_CUDA_BYTE_ORDER has unexpected value '${CMAKE_CUDA_BYTE_ORDER}'") +endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_CUDA_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/CXX-stdout.txt b/Tests/RunCMake/ABI/CXX-stdout.txt new file mode 100644 index 0000000..5b67b84 --- /dev/null +++ b/Tests/RunCMake/ABI/CXX-stdout.txt @@ -0,0 +1 @@ +-- Check if the system is big endian diff --git a/Tests/RunCMake/ABI/CXX.cmake b/Tests/RunCMake/ABI/CXX.cmake new file mode 100644 index 0000000..2310002 --- /dev/null +++ b/Tests/RunCMake/ABI/CXX.cmake @@ -0,0 +1,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() diff --git a/Tests/RunCMake/ABI/OBJC.cmake b/Tests/RunCMake/ABI/OBJC.cmake new file mode 100644 index 0000000..ab67459 --- /dev/null +++ b/Tests/RunCMake/ABI/OBJC.cmake @@ -0,0 +1,13 @@ +enable_language(OBJC) +if(NOT CMAKE_OBJC_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") + if(CMAKE_OSX_ARCHITECTURES MATCHES ";ppc|ppc;") + return() + endif() + message(FATAL_ERROR "CMAKE_OBJC_BYTE_ORDER has unexpected value '${CMAKE_OBJC_BYTE_ORDER}'") +endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_OBJC_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/OBJCXX.cmake b/Tests/RunCMake/ABI/OBJCXX.cmake new file mode 100644 index 0000000..41a719e --- /dev/null +++ b/Tests/RunCMake/ABI/OBJCXX.cmake @@ -0,0 +1,13 @@ +enable_language(OBJCXX) +if(NOT CMAKE_OBJCXX_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") + if(CMAKE_OSX_ARCHITECTURES MATCHES ";ppc|ppc;") + return() + endif() + message(FATAL_ERROR "CMAKE_OBJCXX_BYTE_ORDER has unexpected value '${CMAKE_OBJCXX_BYTE_ORDER}'") +endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_OBJCXX_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/RunCMakeTest.cmake b/Tests/RunCMake/ABI/RunCMakeTest.cmake new file mode 100644 index 0000000..d9eabb7 --- /dev/null +++ b/Tests/RunCMake/ABI/RunCMakeTest.cmake @@ -0,0 +1,15 @@ +include(RunCMake) + +run_cmake(C) +run_cmake(CXX) + +if(APPLE) + run_cmake(OBJC) + run_cmake(OBJCXX) +endif() + +if(CMake_TEST_CUDA) + run_cmake(CUDA) +endif() + +run_cmake(TestBigEndian-NoLang) diff --git a/Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt b/Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt b/Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt new file mode 100644 index 0000000..d0aa899 --- /dev/null +++ b/Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt @@ -0,0 +1,8 @@ +^CMake Error at [^ +]*/Modules/TestBigEndian.cmake:[0-9]+ \(message\): + TEST_BIG_ENDIAN needs either C or CXX language enabled +Call Stack \(most recent call first\): + [^ +]*/Modules/TestBigEndian.cmake:[0-9]+ \(__TEST_BIG_ENDIAN_LEGACY_IMPL\) + TestBigEndian-NoLang.cmake:[0-9]+ \(test_big_endian\) + CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake b/Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake new file mode 100644 index 0000000..8c10201 --- /dev/null +++ b/Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake @@ -0,0 +1,2 @@ +include(TestBigEndian) +test_big_endian(var) |