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