Add test for big endian

This commit is contained in:
Andy Cedilnik 2002-10-01 15:56:18 -04:00
parent 4045066f01
commit dfb25dd982
2 changed files with 26 additions and 0 deletions

10
Modules/TestBigEndian.c Normal file
View File

@ -0,0 +1,10 @@
int main () {
/* Are we little or big endian? From Harbison&Steele. */
union
{
long l;
char c[sizeof (long)];
} u;
u.l = 1;
exit (u.c[sizeof (long) - 1] == 1);
}

View File

@ -0,0 +1,16 @@
#
# Check if the system is big endian or little endian
#
# VARIABLE - variable to store the result to
#
MACRO(TEST_BIG_ENDIAN VARIABLE)
TRY_RUN(${VARIABLE} HAVE_${VARIABLE}
${PROJECT_BINARY_DIR}
${CMAKE_ROOT}/Modules/TestBigEndian.c
OUTPUT_VARIABLE OUTPUT)
IF(NOT HAVE_${VARIABLE})
WRITE_FILE(${PROJECT_BINARY_DIR}/CMakeError.log
"Determining the endianes of the system failed with the following output:\n${OUTPUT}\n")
ENDIF(NOT HAVE_${VARIABLE})
ENDMACRO(TEST_BIG_ENDIAN)