CheckSizes.cmake 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. include(CheckTypeSize)
  2. check_type_size("int16_t" INT16_SIZE LANGUAGE C)
  3. check_type_size("uint16_t" UINT16_SIZE LANGUAGE C)
  4. check_type_size("u_int16_t" U_INT16_SIZE LANGUAGE C)
  5. check_type_size("int32_t" INT32_SIZE LANGUAGE C)
  6. check_type_size("uint32_t" UINT32_SIZE LANGUAGE C)
  7. check_type_size("u_int32_t" U_INT32_SIZE LANGUAGE C)
  8. check_type_size("int64_t" INT64_SIZE LANGUAGE C)
  9. check_type_size("short" SHORT_SIZE LANGUAGE C)
  10. check_type_size("int" INT_SIZE LANGUAGE C)
  11. check_type_size("long" LONG_SIZE LANGUAGE C)
  12. check_type_size("long long" LONG_LONG_SIZE LANGUAGE C)
  13. if(INT16_SIZE EQUAL 2)
  14. set(SIZE16 "int16_t")
  15. elseif(SHORT_SIZE EQUAL 2)
  16. set(SIZE16 "short")
  17. elseif(INT_SIZE EQUAL 2)
  18. set(SIZE16 "int")
  19. else()
  20. message(FATAL_ERROR "No 16 bit type found on this platform!")
  21. endif()
  22. if(UINT16_SIZE EQUAL 2)
  23. set(USIZE16 "uint16_t")
  24. elseif(SHORT_SIZE EQUAL 2)
  25. set(USIZE16 "unsigned short")
  26. elseif(INT_SIZE EQUAL 2)
  27. set(USIZE16 "unsigned int")
  28. elseif(U_INT_SIZE EQUAL 2)
  29. set(USIZE16 "u_int16_t")
  30. else()
  31. message(FATAL_ERROR "No unsigned 16 bit type found on this platform!")
  32. endif()
  33. if(INT32_SIZE EQUAL 4)
  34. set(SIZE32 "int32_t")
  35. elseif(SHORT_SIZE EQUAL 4)
  36. set(SIZE32 "short")
  37. elseif(INT_SIZE EQUAL 4)
  38. set(SIZE32 "int")
  39. elseif(LONG_SIZE EQUAL 4)
  40. set(SIZE16 "long")
  41. else()
  42. message(FATAL_ERROR "No 32 bit type found on this platform!")
  43. endif()
  44. if(UINT32_SIZE EQUAL 4)
  45. set(USIZE32 "uint32_t")
  46. elseif(SHORT_SIZE EQUAL 4)
  47. set(USIZE32 "unsigned short")
  48. elseif(INT_SIZE EQUAL 4)
  49. set(USIZE32 "unsigned int")
  50. elseif(LONG_SIZE EQUAL 4)
  51. set(USIZE32 "unsigned long")
  52. elseif(U_INT_SIZE EQUAL 4)
  53. set(USIZE32 "u_int32_t")
  54. else()
  55. message(FATAL_ERROR "No unsigned 32 bit type found on this platform!")
  56. endif()
  57. if(INT64_SIZE EQUAL 8)
  58. set(SIZE64 "int64_t")
  59. elseif(INT_SIZE EQUAL 8)
  60. set(SIZE64 "int")
  61. elseif(LONG_SIZE EQUAL 8)
  62. set(SIZE64 "long")
  63. elseif(LONG_LONG_SIZE EQUAL 8)
  64. set(SIZE64 "long long")
  65. else()
  66. message(FATAL_ERROR "No 64 bit type found on this platform!")
  67. endif()