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 #ifndef BOOST_PREDEF_PLAT_WINDOWS_UWP_H 9 #define BOOST_PREDEF_PLAT_WINDOWS_UWP_H 10 11 #include <boost/predef/make.h> 12 #include <boost/predef/os/windows.h> 13 #include <boost/predef/version_number.h> 14 15 /*` 16 [heading `BOOST_PLAT_WINDOWS_UWP`] 17 18 [@http://docs.microsoft.com/windows/uwp/ Universal Windows Platform] 19 is available if the current development environment is capable of targeting 20 UWP development. 21 22 [table 23 [[__predef_symbol__] [__predef_version__]] 24 25 [[`__MINGW64_VERSION_MAJOR` from `_mingw.h`] [`>= 3`]] 26 [[`VER_PRODUCTBUILD` from `ntverp.h`] [`>= 9200`]] 27 ] 28 */ 29 30 #define BOOST_PLAT_WINDOWS_UWP BOOST_VERSION_NUMBER_NOT_AVAILABLE 31 #define BOOST_PLAT_WINDOWS_SDK_VERSION BOOST_VERSION_NUMBER_NOT_AVAILABLE 32 33 #if BOOST_OS_WINDOWS 34 // MinGW (32-bit) has no ntverp.h header 35 #if !defined(__MINGW32__) 36 # include <ntverp.h> 37 # undef BOOST_PLAT_WINDOWS_SDK_VERSION 38 # define BOOST_PLAT_WINDOWS_SDK_VERSION BOOST_VERSION_NUMBER(0, 0, VER_PRODUCTBUILD) 39 #endif 40 41 // 9200 is Windows SDK 8.0 from ntverp.h which introduced family support 42 #if ((BOOST_PLAT_WINDOWS_SDK_VERSION >= BOOST_VERSION_NUMBER(0, 0, 9200)) || \ 43 (defined(__MINGW64__) && __MINGW64_VERSION_MAJOR >= 3)) 44 # undef BOOST_PLAT_WINDOWS_UWP 45 # define BOOST_PLAT_WINDOWS_UWP BOOST_VERSION_NUMBER_AVAILABLE 46 #endif 47 #endif 48 49 #if BOOST_PLAT_WINDOWS_UWP 50 # define BOOST_PLAT_WINDOWS_UWP_AVAILABLE 51 # include <boost/predef/detail/platform_detected.h> 52 # include <winapifamily.h> // Windows SDK 53 #endif 54 55 #define BOOST_PLAT_WINDOWS_UWP_NAME "Universal Windows Platform" 56 57 #endif 58 59 #include <boost/predef/detail/test.h> 60 BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_UWP, BOOST_PLAT_WINDOWS_UWP_NAME) 61