platform_windows.cpp 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. /*
  2. Copyright James E. King, III - 2017
  3. Distributed under the Boost Software License, Version 1.0.
  4. (See accompanying file LICENSE_1_0.txt or copy at
  5. http://www.boost.org/LICENSE_1_0.txt)
  6. */
  7. #include <boost/predef/platform.h>
  8. //
  9. // This file is used to verify the BOOST_PLAT_WINDOWS_* logic.
  10. //
  11. // To exercise all of the combinations the CI build needs many
  12. // jobs where it defines all the different possible WINAPI_FAMILY
  13. // values on all supported platforms.
  14. //
  15. //
  16. // UWP is available on Windows SDK 8.0 or later, or on MinGW-w64 major release 3 or later
  17. //
  18. #if (defined(__MINGW64__) && (__MINGW64_VERSION_MAJOR >= 3)) || (BOOST_PLAT_WINDOWS_SDK_VERSION >= 9200)
  19. #if !BOOST_PLAT_WINDOWS_UWP
  20. #error "BOOST_PLAT_WINDOWS_UWP should be available"
  21. #endif
  22. #else
  23. #if BOOST_PLAT_WINDOWS_UWP
  24. #error "BOOST_PLAT_WINDOWS_UWP should not be available"
  25. #endif
  26. #endif
  27. #if !BOOST_PLAT_WINDOWS_UWP
  28. //
  29. // If BOOST_PLAT_WINDOWS_UWP is not available, none of the other BOOST_PLAT_WINDOWS_* are either
  30. // except for BOOST_PLAT_WINDOWS_DESKTOP which is available for backwards compatibility.
  31. //
  32. #if BOOST_OS_WINDOWS && !BOOST_PLAT_WINDOWS_DESKTOP
  33. #error "BOOST_PLAT_WINDOWS_DESKTOP should be available"
  34. #endif
  35. #if BOOST_PLAT_WINDOWS_PHONE
  36. #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
  37. #endif
  38. #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
  39. #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
  40. #endif
  41. #if BOOST_PLAT_WINDOWS_SERVER
  42. #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
  43. #endif
  44. #if BOOST_PLAT_WINDOWS_STORE
  45. #error "BOOST_PLAT_WINDOWS_STORE should not be available"
  46. #endif
  47. #if BOOST_PLAT_WINDOWS_SYSTEM
  48. #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
  49. #endif
  50. #else // !BOOST_PLAT_WINDOWS_UWP
  51. //
  52. // If BOOST_PLAT_WINDOWS_UWP is available, and the SDK supports a particular family,
  53. // and if WINAPI_FAMILY is set to it, then it and only it should be available.
  54. //
  55. #if !defined(WINAPI_FAMILY)
  56. #error "windows_uwp.h should have included <winapifamily.h> which should have defined supported families"
  57. #endif
  58. #if WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP
  59. #if !BOOST_PLAT_WINDOWS_DESKTOP
  60. #error "BOOST_PLAT_WINDOWS_DESKTOP should be available"
  61. #endif
  62. #if BOOST_PLAT_WINDOWS_PHONE
  63. #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
  64. #endif
  65. #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
  66. #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
  67. #endif
  68. #if BOOST_PLAT_WINDOWS_SERVER
  69. #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
  70. #endif
  71. #if BOOST_PLAT_WINDOWS_STORE
  72. #error "BOOST_PLAT_WINDOWS_STORE should not be available"
  73. #endif
  74. #if BOOST_PLAT_WINDOWS_SYSTEM
  75. #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
  76. #endif
  77. #endif
  78. #if defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
  79. #if BOOST_PLAT_WINDOWS_DESKTOP
  80. #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
  81. #endif
  82. #if !BOOST_PLAT_WINDOWS_PHONE
  83. #error "BOOST_PLAT_WINDOWS_PHONE should be available"
  84. #endif
  85. #if !BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
  86. #error "BOOST_PLAT_WINDOWS_RUNTIME should be available"
  87. #endif
  88. #if BOOST_PLAT_WINDOWS_SERVER
  89. #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
  90. #endif
  91. #if BOOST_PLAT_WINDOWS_STORE
  92. #error "BOOST_PLAT_WINDOWS_STORE should not be available"
  93. #endif
  94. #if BOOST_PLAT_WINDOWS_SYSTEM
  95. #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
  96. #endif
  97. #endif
  98. #if defined(WINAPI_FAMILY_SERVER_APP) && WINAPI_FAMILY == WINAPI_FAMILY_SERVER_APP
  99. #if BOOST_PLAT_WINDOWS_DESKTOP
  100. #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
  101. #endif
  102. #if BOOST_PLAT_WINDOWS_PHONE
  103. #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
  104. #endif
  105. #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
  106. #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
  107. #endif
  108. #if !BOOST_PLAT_WINDOWS_SERVER
  109. #error "BOOST_PLAT_WINDOWS_SERVER should be available"
  110. #endif
  111. #if BOOST_PLAT_WINDOWS_STORE
  112. #error "BOOST_PLAT_WINDOWS_STORE should not be available"
  113. #endif
  114. #if BOOST_PLAT_WINDOWS_SYSTEM
  115. #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
  116. #endif
  117. #endif
  118. // Store is WINAPI_FAMILY_APP in MinGW-w64 and in Windows SDK 8.0
  119. // then in Windows SDK 8.1 it was deprecated in favor of WINAPI_FAMILY_PC_APP
  120. #if ((defined(WINAPI_FAMILY_PC_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) || \
  121. (defined(WINAPI_FAMILY_APP) && WINAPI_FAMILY == WINAPI_FAMILY_APP))
  122. #if BOOST_PLAT_WINDOWS_DESKTOP
  123. #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
  124. #endif
  125. #if BOOST_PLAT_WINDOWS_PHONE
  126. #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
  127. #endif
  128. #if !BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
  129. #error "BOOST_PLAT_WINDOWS_RUNTIME should be available"
  130. #endif
  131. #if BOOST_PLAT_WINDOWS_SERVER
  132. #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
  133. #endif
  134. #if !BOOST_PLAT_WINDOWS_STORE
  135. #error "BOOST_PLAT_WINDOWS_STORE should be available"
  136. #endif
  137. #if BOOST_PLAT_WINDOWS_SYSTEM
  138. #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
  139. #endif
  140. #endif
  141. #if defined(WINAPI_FAMILY_SYSTEM_APP) && WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM_APP
  142. #if BOOST_PLAT_WINDOWS_DESKTOP
  143. #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
  144. #endif
  145. #if BOOST_PLAT_WINDOWS_PHONE
  146. #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
  147. #endif
  148. #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
  149. #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
  150. #endif
  151. #if BOOST_PLAT_WINDOWS_SERVER
  152. #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
  153. #endif
  154. #if BOOST_PLAT_WINDOWS_STORE
  155. #error "BOOST_PLAT_WINDOWS_STORE should not be available"
  156. #endif
  157. #if !BOOST_PLAT_WINDOWS_SYSTEM
  158. #error "BOOST_PLAT_WINDOWS_SYSTEM should be available"
  159. #endif
  160. #endif
  161. #endif // !BOOST_PLAT_WINDOWS_UWP