predef.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. /*
  2. * Copyright (c) 2017-2023 zhllxt
  3. *
  4. * author : zhllxt
  5. * email : 37792738@qq.com
  6. *
  7. * Distributed under the Boost Software License, Version 1.0. (See accompanying
  8. * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  9. */
  10. #ifndef __ASIO2_EXTERNAL_PREDEF_H__
  11. #define __ASIO2_EXTERNAL_PREDEF_H__
  12. #include <asio2/config.hpp>
  13. #if !defined(ASIO2_HEADER_ONLY) && __has_include(<boost/predef.h>)
  14. #include <boost/predef.h>
  15. #ifndef ASIO2_OS_IOS
  16. #define ASIO2_OS_IOS BOOST_OS_IOS
  17. #endif
  18. #ifndef ASIO2_OS_LINUX
  19. #define ASIO2_OS_LINUX BOOST_OS_LINUX
  20. #endif
  21. #ifndef ASIO2_OS_MACOS
  22. #define ASIO2_OS_MACOS BOOST_OS_MACOS
  23. #endif
  24. #ifndef ASIO2_OS_UNIX
  25. #define ASIO2_OS_UNIX BOOST_OS_UNIX
  26. #endif
  27. #ifndef ASIO2_OS_WINDOWS
  28. #define ASIO2_OS_WINDOWS BOOST_OS_WINDOWS
  29. #endif
  30. #ifndef ASIO2_ENDIAN_BIG_BYTE
  31. #define ASIO2_ENDIAN_BIG_BYTE BOOST_ENDIAN_BIG_BYTE
  32. #endif
  33. #ifndef ASIO2_ENDIAN_BIG_WORD
  34. #define ASIO2_ENDIAN_BIG_WORD BOOST_ENDIAN_BIG_WORD
  35. #endif
  36. #ifndef ASIO2_ENDIAN_LITTLE_BYTE
  37. #define ASIO2_ENDIAN_LITTLE_BYTE BOOST_ENDIAN_LITTLE_BYTE
  38. #endif
  39. #ifndef ASIO2_ENDIAN_LITTLE_WORD
  40. #define ASIO2_ENDIAN_LITTLE_WORD BOOST_ENDIAN_LITTLE_WORD
  41. #endif
  42. #ifndef ASIO2_ARCH_WORD_BITS_64
  43. #define ASIO2_ARCH_WORD_BITS_64 BOOST_ARCH_WORD_BITS_64
  44. #endif
  45. #ifndef ASIO2_ARCH_WORD_BITS_32
  46. #define ASIO2_ARCH_WORD_BITS_32 BOOST_ARCH_WORD_BITS_32
  47. #endif
  48. #ifndef ASIO2_ARCH_WORD_BITS_16
  49. #define ASIO2_ARCH_WORD_BITS_16 BOOST_ARCH_WORD_BITS_16
  50. #endif
  51. #ifndef ASIO2_ARCH_WORD_BITS
  52. #define ASIO2_ARCH_WORD_BITS BOOST_ARCH_WORD_BITS
  53. #endif
  54. #else
  55. #include <asio2/bho/predef.h>
  56. #ifndef ASIO2_OS_IOS
  57. #define ASIO2_OS_IOS BHO_OS_IOS
  58. #endif
  59. #ifndef ASIO2_OS_LINUX
  60. #define ASIO2_OS_LINUX BHO_OS_LINUX
  61. #endif
  62. #ifndef ASIO2_OS_MACOS
  63. #define ASIO2_OS_MACOS BHO_OS_MACOS
  64. #endif
  65. #ifndef ASIO2_OS_UNIX
  66. #define ASIO2_OS_UNIX BHO_OS_UNIX
  67. #endif
  68. #ifndef ASIO2_OS_WINDOWS
  69. #define ASIO2_OS_WINDOWS BHO_OS_WINDOWS
  70. #endif
  71. #ifndef ASIO2_ENDIAN_BIG_BYTE
  72. #define ASIO2_ENDIAN_BIG_BYTE BHO_ENDIAN_BIG_BYTE
  73. #endif
  74. #ifndef ASIO2_ENDIAN_BIG_WORD
  75. #define ASIO2_ENDIAN_BIG_WORD BHO_ENDIAN_BIG_WORD
  76. #endif
  77. #ifndef ASIO2_ENDIAN_LITTLE_BYTE
  78. #define ASIO2_ENDIAN_LITTLE_BYTE BHO_ENDIAN_LITTLE_BYTE
  79. #endif
  80. #ifndef ASIO2_ENDIAN_LITTLE_WORD
  81. #define ASIO2_ENDIAN_LITTLE_WORD BHO_ENDIAN_LITTLE_WORD
  82. #endif
  83. #ifndef ASIO2_ARCH_WORD_BITS_64
  84. #define ASIO2_ARCH_WORD_BITS_64 BHO_ARCH_WORD_BITS_64
  85. #endif
  86. #ifndef ASIO2_ARCH_WORD_BITS_32
  87. #define ASIO2_ARCH_WORD_BITS_32 BHO_ARCH_WORD_BITS_32
  88. #endif
  89. #ifndef ASIO2_ARCH_WORD_BITS_16
  90. #define ASIO2_ARCH_WORD_BITS_16 BHO_ARCH_WORD_BITS_16
  91. #endif
  92. #ifndef ASIO2_ARCH_WORD_BITS
  93. #define ASIO2_ARCH_WORD_BITS BHO_ARCH_WORD_BITS
  94. #endif
  95. #endif
  96. #endif