Determining if the system is big endian passed with the following output: Change Dir: /var/uhubuild/work/compile/buildCli/CMakeFiles/CMakeTmp Run Build Command:/usr/bin/make "cmTryCompileExec1499855335/fast" /usr/bin/make -f CMakeFiles/cmTryCompileExec1499855335.dir/build.make CMakeFiles/cmTryCompileExec1499855335.dir/build make[1]: Entering directory `/var/uhubuild/work/compile/buildCli/CMakeFiles/CMakeTmp' /usr/bin/cmake -E cmake_progress_report /var/uhubuild/work/compile/buildCli/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec1499855335.dir/TestEndianess.c.o /usr/lib/ccache/cc -o CMakeFiles/cmTryCompileExec1499855335.dir/TestEndianess.c.o -c /var/uhubuild/work/compile/buildCli/CMakeFiles/CMakeTmp/TestEndianess.c Linking C executable cmTryCompileExec1499855335 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1499855335.dir/link.txt --verbose=1 /usr/lib/ccache/cc CMakeFiles/cmTryCompileExec1499855335.dir/TestEndianess.c.o -o cmTryCompileExec1499855335 -rdynamic make[1]: Leaving directory `/var/uhubuild/work/compile/buildCli/CMakeFiles/CMakeTmp' TestEndianess.c: /* A 16 bit integer is required. */ typedef unsigned short cmakeint16; /* On a little endian machine, these 16bit ints will give "THIS IS LITTLE ENDIAN." On a big endian machine the characters will be exchanged pairwise. */ const cmakeint16 info_little[] = {0x4854, 0x5349, 0x4920, 0x2053, 0x494c, 0x5454, 0x454c, 0x4520, 0x444e, 0x4149, 0x2e4e, 0x0000}; /* on a big endian machine, these 16bit ints will give "THIS IS BIG ENDIAN." On a little endian machine the characters will be exchanged pairwise. */ const cmakeint16 info_big[] = {0x5448, 0x4953, 0x2049, 0x5320, 0x4249, 0x4720, 0x454e, 0x4449, 0x414e, 0x2e2e, 0x0000}; #ifdef __CLASSIC_C__ int main(argc, argv) int argc; char *argv[]; #else int main(int argc, char *argv[]) #endif { int require = 0; require += info_little[argc]; require += info_big[argc]; (void)argv; return require; }