123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- /*
- Copyright James E. King, III - 2017
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
- */
- #include <boost/predef/platform.h>
- //
- // This file is used to verify the BOOST_PLAT_WINDOWS_* logic.
- //
- // To exercise all of the combinations the CI build needs many
- // jobs where it defines all the different possible WINAPI_FAMILY
- // values on all supported platforms.
- //
- //
- // UWP is available on Windows SDK 8.0 or later, or on MinGW-w64 major release 3 or later
- //
- #if (defined(__MINGW64__) && (__MINGW64_VERSION_MAJOR >= 3)) || (BOOST_PLAT_WINDOWS_SDK_VERSION >= 9200)
- #if !BOOST_PLAT_WINDOWS_UWP
- #error "BOOST_PLAT_WINDOWS_UWP should be available"
- #endif
- #else
- #if BOOST_PLAT_WINDOWS_UWP
- #error "BOOST_PLAT_WINDOWS_UWP should not be available"
- #endif
- #endif
- #if !BOOST_PLAT_WINDOWS_UWP
- //
- // If BOOST_PLAT_WINDOWS_UWP is not available, none of the other BOOST_PLAT_WINDOWS_* are either
- // except for BOOST_PLAT_WINDOWS_DESKTOP which is available for backwards compatibility.
- //
- #if BOOST_OS_WINDOWS && !BOOST_PLAT_WINDOWS_DESKTOP
- #error "BOOST_PLAT_WINDOWS_DESKTOP should be available"
- #endif
- #if BOOST_PLAT_WINDOWS_PHONE
- #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
- #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SERVER
- #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_STORE
- #error "BOOST_PLAT_WINDOWS_STORE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SYSTEM
- #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
- #endif
- #else // !BOOST_PLAT_WINDOWS_UWP
- //
- // If BOOST_PLAT_WINDOWS_UWP is available, and the SDK supports a particular family,
- // and if WINAPI_FAMILY is set to it, then it and only it should be available.
- //
- #if !defined(WINAPI_FAMILY)
- #error "windows_uwp.h should have included <winapifamily.h> which should have defined supported families"
- #endif
- #if WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP
- #if !BOOST_PLAT_WINDOWS_DESKTOP
- #error "BOOST_PLAT_WINDOWS_DESKTOP should be available"
- #endif
- #if BOOST_PLAT_WINDOWS_PHONE
- #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
- #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SERVER
- #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_STORE
- #error "BOOST_PLAT_WINDOWS_STORE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SYSTEM
- #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
- #endif
- #endif
- #if defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
- #if BOOST_PLAT_WINDOWS_DESKTOP
- #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
- #endif
- #if !BOOST_PLAT_WINDOWS_PHONE
- #error "BOOST_PLAT_WINDOWS_PHONE should be available"
- #endif
- #if !BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
- #error "BOOST_PLAT_WINDOWS_RUNTIME should be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SERVER
- #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_STORE
- #error "BOOST_PLAT_WINDOWS_STORE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SYSTEM
- #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
- #endif
- #endif
- #if defined(WINAPI_FAMILY_SERVER_APP) && WINAPI_FAMILY == WINAPI_FAMILY_SERVER_APP
- #if BOOST_PLAT_WINDOWS_DESKTOP
- #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_PHONE
- #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
- #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
- #endif
- #if !BOOST_PLAT_WINDOWS_SERVER
- #error "BOOST_PLAT_WINDOWS_SERVER should be available"
- #endif
- #if BOOST_PLAT_WINDOWS_STORE
- #error "BOOST_PLAT_WINDOWS_STORE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SYSTEM
- #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
- #endif
- #endif
- // Store is WINAPI_FAMILY_APP in MinGW-w64 and in Windows SDK 8.0
- // then in Windows SDK 8.1 it was deprecated in favor of WINAPI_FAMILY_PC_APP
- #if ((defined(WINAPI_FAMILY_PC_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) || \
- (defined(WINAPI_FAMILY_APP) && WINAPI_FAMILY == WINAPI_FAMILY_APP))
- #if BOOST_PLAT_WINDOWS_DESKTOP
- #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_PHONE
- #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
- #endif
- #if !BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
- #error "BOOST_PLAT_WINDOWS_RUNTIME should be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SERVER
- #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
- #endif
- #if !BOOST_PLAT_WINDOWS_STORE
- #error "BOOST_PLAT_WINDOWS_STORE should be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SYSTEM
- #error "BOOST_PLAT_WINDOWS_SYSTEM should not be available"
- #endif
- #endif
- #if defined(WINAPI_FAMILY_SYSTEM_APP) && WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM_APP
- #if BOOST_PLAT_WINDOWS_DESKTOP
- #error "BOOST_PLAT_WINDOWS_DESKTOP should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_PHONE
- #error "BOOST_PLAT_WINDOWS_PHONE should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_RUNTIME /* deprecated */
- #error "BOOST_PLAT_WINDOWS_RUNTIME should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_SERVER
- #error "BOOST_PLAT_WINDOWS_SERVER should not be available"
- #endif
- #if BOOST_PLAT_WINDOWS_STORE
- #error "BOOST_PLAT_WINDOWS_STORE should not be available"
- #endif
- #if !BOOST_PLAT_WINDOWS_SYSTEM
- #error "BOOST_PLAT_WINDOWS_SYSTEM should be available"
- #endif
- #endif
- #endif // !BOOST_PLAT_WINDOWS_UWP
|