endianness.h 926 B

12345678910111213141516171819202122232425262728
  1. #ifdef _WIN32
  2. #define TESSERACT_ENDIAN_DETECT 1
  3. #else
  4. #define TESSERACT_ENDIAN_DETECT 0
  5. #endif
  6. #if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || \
  7. defined(__BIG_ENDIAN__) || \
  8. defined(__ARMEB__) || \
  9. defined(__THUMBEB__) || \
  10. defined(__AARCH64EB__) || \
  11. defined(_MIBSEB) || defined(__MIBSEB) || defined(__MIBSEB__)
  12. // It's a big-endian target architecture
  13. # define L_BIG_ENDIAN
  14. #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || \
  15. defined(__LITTLE_ENDIAN__) || \
  16. defined(__ARMEL__) || \
  17. defined(__THUMBEL__) || \
  18. defined(__AARCH64EL__) || \
  19. defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || \
  20. defined(_M_IX86) || defined(_M_X64) || \
  21. defined(_M_IS64) || defined(_M_ARM) || \
  22. TESSERACT_ENDIAN_DETECT == 1
  23. // It's a little-endian target architecture
  24. # define L_LITTLE_ENDIAN
  25. #else
  26. #error "I don't know what architecture this is!"
  27. #endif