summaryrefslogtreecommitdiff
path: root/boost/predef
diff options
context:
space:
mode:
Diffstat (limited to 'boost/predef')
-rw-r--r--boost/predef/architecture/parisc.h2
-rw-r--r--boost/predef/library/c.h1
-rw-r--r--boost/predef/library/c/cloudabi.h53
-rw-r--r--boost/predef/make.h4
-rw-r--r--boost/predef/os/android.h4
-rw-r--r--boost/predef/os/bsd/free.h13
-rw-r--r--boost/predef/os/bsd/open.h80
-rw-r--r--boost/predef/platform.h10
-rw-r--r--boost/predef/platform/cloudabi.h43
-rw-r--r--boost/predef/platform/mingw.h4
-rw-r--r--boost/predef/platform/mingw32.h63
-rw-r--r--boost/predef/platform/mingw64.h63
-rw-r--r--boost/predef/platform/windows_desktop.h12
-rw-r--r--boost/predef/platform/windows_phone.h9
-rw-r--r--boost/predef/platform/windows_runtime.h18
-rw-r--r--boost/predef/platform/windows_server.h47
-rw-r--r--boost/predef/platform/windows_store.h15
-rw-r--r--boost/predef/platform/windows_system.h47
-rw-r--r--boost/predef/platform/windows_uwp.h60
-rw-r--r--boost/predef/version.h2
20 files changed, 525 insertions, 25 deletions
diff --git a/boost/predef/architecture/parisc.h b/boost/predef/architecture/parisc.h
index 7c7625f912..c75a1f3889 100644
--- a/boost/predef/architecture/parisc.h
+++ b/boost/predef/architecture/parisc.h
@@ -12,7 +12,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/make.h>
/*`
-[heading `BOOST_ARCH_PARISK`]
+[heading `BOOST_ARCH_PARISC`]
[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.
diff --git a/boost/predef/library/c.h b/boost/predef/library/c.h
index fa8841e827..7ca84cc079 100644
--- a/boost/predef/library/c.h
+++ b/boost/predef/library/c.h
@@ -12,6 +12,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/library/c/_prefix.h>
+#include <boost/predef/library/c/cloudabi.h>
#include <boost/predef/library/c/gnu.h>
#include <boost/predef/library/c/uc.h>
#include <boost/predef/library/c/vms.h>
diff --git a/boost/predef/library/c/cloudabi.h b/boost/predef/library/c/cloudabi.h
new file mode 100644
index 0000000000..e6acaee65d
--- /dev/null
+++ b/boost/predef/library/c/cloudabi.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 James E. King III
+ *
+ * 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)
+ */
+
+#ifndef BOOST_PREDEF_LIBRARY_C_CLOUDABI_H
+#define BOOST_PREDEF_LIBRARY_C_CLOUDABI_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+#include <boost/predef/library/c/_prefix.h>
+
+#if defined(__CloudABI__)
+#include <stddef.h>
+#endif
+
+/*`
+[heading `BOOST_LIB_C_CLOUDABI`]
+
+[@https://github.com/NuxiNL/cloudlibc cloudlibc] - CloudABI's standard C library.
+Version number available as major, and minor.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__cloudlibc__`] [__predef_detection__]]
+
+ [[`__cloudlibc_major__`, `__cloudlibc_minor__`] [V.R.0]]
+ ]
+ */
+
+#define BOOST_LIB_C_CLOUDABI BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__cloudlibc__)
+# undef BOOST_LIB_C_CLOUDABI
+# define BOOST_LIB_C_CLOUDABI \
+ BOOST_VERSION_NUMBER(__cloudlibc_major__,__cloudlibc_minor__,0)
+#endif
+
+#if BOOST_LIB_C_CLOUDABI
+# define BOOST_LIB_C_CLOUDABI_AVAILABLE
+#endif
+
+#define BOOST_LIB_C_CLOUDABI_NAME "cloudlibc"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_CLOUDABI,BOOST_LIB_C_CLOUDABI_NAME)
diff --git a/boost/predef/make.h b/boost/predef/make.h
index 4f2f9ee761..36b891aa33 100644
--- a/boost/predef/make.h
+++ b/boost/predef/make.h
@@ -50,6 +50,8 @@ Macros are:
#define BOOST_PREDEF_MAKE_10_VRP(V) BOOST_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10)
/*` `BOOST_PREDEF_MAKE_10_VRP000(V)` */
#define BOOST_PREDEF_MAKE_10_VRP000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10)
+/*` `BOOST_PREDEF_MAKE_10_VRPPPP(V)` */
+#define BOOST_PREDEF_MAKE_10_VRPPPP(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,(V)%10000)
/*` `BOOST_PREDEF_MAKE_10_VRPP(V)` */
#define BOOST_PREDEF_MAKE_10_VRPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100)
/*` `BOOST_PREDEF_MAKE_10_VRR(V)` */
@@ -64,6 +66,8 @@ Macros are:
#define BOOST_PREDEF_MAKE_10_VVRR(V) BOOST_VERSION_NUMBER(((V)/100)%100,(V)%100,0)
/*` `BOOST_PREDEF_MAKE_10_VVRRPP(V)` */
#define BOOST_PREDEF_MAKE_10_VVRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100)
+/*` `BOOST_PREDEF_MAKE_10_VVRRPPP(V)` */
+#define BOOST_PREDEF_MAKE_10_VVRRPPP(V) BOOST_VERSION_NUMBER(((V)/100000)%100,((V)/1000)%100,(V)%1000)
/*` `BOOST_PREDEF_MAKE_10_VVRR0PP00(V)` */
#define BOOST_PREDEF_MAKE_10_VVRR0PP00(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100)
/*` `BOOST_PREDEF_MAKE_10_VVRR0PPPP(V)` */
diff --git a/boost/predef/os/android.h b/boost/predef/os/android.h
index 00836e7fce..125dbded9e 100644
--- a/boost/predef/os/android.h
+++ b/boost/predef/os/android.h
@@ -5,8 +5,8 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
-#ifndef BOOST_PREDEF_OS_ADROID_H
-#define BOOST_PREDEF_OS_ADROID_H
+#ifndef BOOST_PREDEF_OS_ANDROID_H
+#define BOOST_PREDEF_OS_ANDROID_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
diff --git a/boost/predef/os/bsd/free.h b/boost/predef/os/bsd/free.h
index 248011ae7a..81c002109d 100644
--- a/boost/predef/os/bsd/free.h
+++ b/boost/predef/os/bsd/free.h
@@ -34,13 +34,20 @@ http://www.boost.org/LICENSE_1_0.txt)
# define BOOST_OS_BSD_AVAILABLE
# endif
# undef BOOST_OS_BSD_FREE
+# include <sys/param.h>
# if defined(__FreeBSD_version)
-# if __FreeBSD_version < 500000
+# if __FreeBSD_version == 491000
# define BOOST_OS_BSD_FREE \
- BOOST_PREDEF_MAKE_10_VRP000(__FreeBSD_version)
+ BOOST_VERSION_NUMBER(4, 10, 0)
+# elif __FreeBSD_version == 492000
+# define BOOST_OS_BSD_FREE \
+ BOOST_VERSION_NUMBER(4, 11, 0)
+# elif __FreeBSD_version < 500000
+# define BOOST_OS_BSD_FREE \
+ BOOST_PREDEF_MAKE_10_VRPPPP(__FreeBSD_version)
# else
# define BOOST_OS_BSD_FREE \
- BOOST_PREDEF_MAKE_10_VRR000(__FreeBSD_version)
+ BOOST_PREDEF_MAKE_10_VVRRPPP(__FreeBSD_version)
# endif
# else
# define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_AVAILABLE
diff --git a/boost/predef/os/bsd/open.h b/boost/predef/os/bsd/open.h
index 423103ac5c..f6ccd24a9b 100644
--- a/boost/predef/os/bsd/open.h
+++ b/boost/predef/os/bsd/open.h
@@ -50,6 +50,26 @@ http://www.boost.org/LICENSE_1_0.txt)
[[`OpenBSD4_7`] [4.7.0]]
[[`OpenBSD4_8`] [4.8.0]]
[[`OpenBSD4_9`] [4.9.0]]
+ [[`OpenBSD5_0`] [5.0.0]]
+ [[`OpenBSD5_1`] [5.1.0]]
+ [[`OpenBSD5_2`] [5.2.0]]
+ [[`OpenBSD5_3`] [5.3.0]]
+ [[`OpenBSD5_4`] [5.4.0]]
+ [[`OpenBSD5_5`] [5.5.0]]
+ [[`OpenBSD5_6`] [5.6.0]]
+ [[`OpenBSD5_7`] [5.7.0]]
+ [[`OpenBSD5_8`] [5.8.0]]
+ [[`OpenBSD5_9`] [5.9.0]]
+ [[`OpenBSD6_0`] [6.0.0]]
+ [[`OpenBSD6_1`] [6.1.0]]
+ [[`OpenBSD6_2`] [6.2.0]]
+ [[`OpenBSD6_3`] [6.3.0]]
+ [[`OpenBSD6_4`] [6.4.0]]
+ [[`OpenBSD6_5`] [6.5.0]]
+ [[`OpenBSD6_6`] [6.6.0]]
+ [[`OpenBSD6_7`] [6.7.0]]
+ [[`OpenBSD6_8`] [6.8.0]]
+ [[`OpenBSD6_9`] [6.9.0]]
]
*/
@@ -153,6 +173,66 @@ http://www.boost.org/LICENSE_1_0.txt)
# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_9)
# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,9,0)
# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_0)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,0,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_1)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,1,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_2)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,2,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_3)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,3,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_4)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,4,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_5)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,5,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_6)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,6,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_7)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,7,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_8)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,8,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD5_9)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(5,9,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_0)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,0,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_1)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,1,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_2)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,2,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_3)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,3,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_4)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,4,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_5)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,5,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_6)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,6,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_7)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,7,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_8)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,8,0)
+# endif
+# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD6_9)
+# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(6,9,0)
+# endif
# if !defined(BOOST_OS_BSD_OPEN)
# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_AVAILABLE
# endif
diff --git a/boost/predef/platform.h b/boost/predef/platform.h
index 7da697e63d..6c366d595c 100644
--- a/boost/predef/platform.h
+++ b/boost/predef/platform.h
@@ -11,11 +11,17 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_PLATFORM_H
#endif
+#include <boost/predef/platform/cloudabi.h>
#include <boost/predef/platform/mingw.h>
+#include <boost/predef/platform/mingw32.h>
+#include <boost/predef/platform/mingw64.h>
+#include <boost/predef/platform/windows_uwp.h>
#include <boost/predef/platform/windows_desktop.h>
-#include <boost/predef/platform/windows_store.h>
#include <boost/predef/platform/windows_phone.h>
-#include <boost/predef/platform/windows_runtime.h>
+#include <boost/predef/platform/windows_server.h>
+#include <boost/predef/platform/windows_store.h>
+#include <boost/predef/platform/windows_system.h>
+#include <boost/predef/platform/windows_runtime.h> // deprecated
#include <boost/predef/platform/ios.h>
/*#include <boost/predef/platform/.h>*/
diff --git a/boost/predef/platform/cloudabi.h b/boost/predef/platform/cloudabi.h
new file mode 100644
index 0000000000..c44f689454
--- /dev/null
+++ b/boost/predef/platform/cloudabi.h
@@ -0,0 +1,43 @@
+/*
+ Copyright 2017 James E. King, III
+ 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)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_CLOUDABI_H
+#define BOOST_PREDEF_PLAT_CLOUDABI_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_PLAT_CLOUDABI`]
+
+[@https://github.com/NuxiNL/cloudabi CloudABI] platform.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__CloudABI__`] [__predef_detection__]]
+ ]
+ */
+
+#define BOOST_PLAT_CLOUDABI BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__CloudABI__)
+# undef BOOST_PLAT_CLOUDABI
+# define BOOST_PLAT_CLOUDABI BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if BOOST_PLAT_CLOUDABI
+# define BOOST_PLAT_CLOUDABI_AVAILABLE
+# include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_CLOUDABI_NAME "CloudABI"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_CLOUDABI,BOOST_PLAT_CLOUDABI_NAME)
diff --git a/boost/predef/platform/mingw.h b/boost/predef/platform/mingw.h
index 5a1334b47c..c52827d7d8 100644
--- a/boost/predef/platform/mingw.h
+++ b/boost/predef/platform/mingw.h
@@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_PLAT_MINGW`]
-[@http://en.wikipedia.org/wiki/MinGW MinGW] platform.
+[@http://en.wikipedia.org/wiki/MinGW MinGW] platform, either variety.
Version number available as major, minor, and patch.
[table
@@ -56,7 +56,7 @@ Version number available as major, minor, and patch.
# include <boost/predef/detail/platform_detected.h>
#endif
-#define BOOST_PLAT_MINGW_NAME "MinGW"
+#define BOOST_PLAT_MINGW_NAME "MinGW (any variety)"
#endif
diff --git a/boost/predef/platform/mingw32.h b/boost/predef/platform/mingw32.h
new file mode 100644
index 0000000000..ff90038b4c
--- /dev/null
+++ b/boost/predef/platform/mingw32.h
@@ -0,0 +1,63 @@
+/*
+Copyright Rene Rivera 2008-2015
+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)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_MINGW32_H
+#define BOOST_PREDEF_PLAT_MINGW32_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_PLAT_MINGW32`]
+
+[@http://www.mingw.org/ MinGW] platform.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__MINGW32__`] [__predef_detection__]]
+
+ [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]]
+ ]
+ */
+
+#define BOOST_PLAT_MINGW32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MINGW32__)
+# include <_mingw.h>
+# if !defined(BOOST_PLAT_MINGW32_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
+# define BOOST_PLAT_MINGW32_DETECTION \
+ BOOST_VERSION_NUMBER(__MINGW32_VERSION_MAJOR,__MINGW32_VERSION_MINOR,0)
+# endif
+# if !defined(BOOST_PLAT_MINGW32_DETECTION)
+# define BOOST_PLAT_MINGW32_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef BOOST_PLAT_MINGW32_DETECTION
+# define BOOST_PLAT_MINGW32_AVAILABLE
+# if defined(BOOST_PREDEF_DETAIL_PLAT_DETECTED)
+# define BOOST_PLAT_MINGW32_EMULATED BOOST_PLAT_MINGW32_DETECTION
+# else
+# undef BOOST_PLAT_MINGW32
+# define BOOST_PLAT_MINGW32 BOOST_PLAT_MINGW32_DETECTION
+# endif
+# include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_MINGW32_NAME "MinGW"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW32,BOOST_PLAT_MINGW32_NAME)
+
+#ifdef BOOST_PLAT_MINGW32_EMULATED
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW32_EMULATED,BOOST_PLAT_MINGW32_NAME)
+#endif
diff --git a/boost/predef/platform/mingw64.h b/boost/predef/platform/mingw64.h
new file mode 100644
index 0000000000..a35dd3e016
--- /dev/null
+++ b/boost/predef/platform/mingw64.h
@@ -0,0 +1,63 @@
+/*
+Copyright Rene Rivera 2008-2015
+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)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_MINGW64_H
+#define BOOST_PREDEF_PLAT_MINGW64_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_PLAT_MINGW64`]
+
+[@https://mingw-w64.org/ MinGW-w64] platform.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__MINGW64__`] [__predef_detection__]]
+
+ [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]]
+ ]
+ */
+
+#define BOOST_PLAT_MINGW64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MINGW64__)
+# include <_mingw.h>
+# if !defined(BOOST_PLAT_MINGW64_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
+# define BOOST_PLAT_MINGW64_DETECTION \
+ BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
+# endif
+# if !defined(BOOST_PLAT_MINGW64_DETECTION)
+# define BOOST_PLAT_MINGW64_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef BOOST_PLAT_MINGW64_DETECTION
+# define BOOST_PLAT_MINGW64_AVAILABLE
+# if defined(BOOST_PREDEF_DETAIL_PLAT_DETECTED)
+# define BOOST_PLAT_MINGW64_EMULATED BOOST_PLAT_MINGW64_DETECTION
+# else
+# undef BOOST_PLAT_MINGW64
+# define BOOST_PLAT_MINGW64 BOOST_PLAT_MINGW64_DETECTION
+# endif
+# include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_MINGW64_NAME "MinGW-w64"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW64,BOOST_PLAT_MINGW64_NAME)
+
+#ifdef BOOST_PLAT_MINGW64_EMULATED
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW64_EMULATED,BOOST_PLAT_MINGW64_NAME)
+#endif
diff --git a/boost/predef/platform/windows_desktop.h b/boost/predef/platform/windows_desktop.h
index 62719b4299..afb39079a6 100644
--- a/boost/predef/platform/windows_desktop.h
+++ b/boost/predef/platform/windows_desktop.h
@@ -9,25 +9,31 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_PLAT_WINDOWS_DESKTOP_H
#define BOOST_PREDEF_PLAT_WINDOWS_DESKTOP_H
-#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
/*`
[heading `BOOST_PLAT_WINDOWS_DESKTOP`]
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Desktop development. Also available if the Platform SDK is too
+old to support UWP.
+
[table
[[__predef_symbol__] [__predef_version__]]
- [[`!WINAPI_FAMILY`] [__predef_detection__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP`] [__predef_detection__]]
+ [[`!BOOST_PLAT_WINDOWS_UWP`] [__predef_detection__]]
]
*/
#define BOOST_PLAT_WINDOWS_DESKTOP BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if BOOST_OS_WINDOWS && \
- ( !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) )
+ ((defined(WINAPI_FAMILY_DESKTOP_APP) && WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) || \
+ !BOOST_PLAT_WINDOWS_UWP)
# undef BOOST_PLAT_WINDOWS_DESKTOP
# define BOOST_PLAT_WINDOWS_DESKTOP BOOST_VERSION_NUMBER_AVAILABLE
#endif
diff --git a/boost/predef/platform/windows_phone.h b/boost/predef/platform/windows_phone.h
index df583adc02..0ebc76d276 100644
--- a/boost/predef/platform/windows_phone.h
+++ b/boost/predef/platform/windows_phone.h
@@ -9,13 +9,17 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_PLAT_WINDOWS_PHONE_H
#define BOOST_PREDEF_PLAT_WINDOWS_PHONE_H
-#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
/*`
[heading `BOOST_PLAT_WINDOWS_PHONE`]
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Phone development.
+
[table
[[__predef_symbol__] [__predef_version__]]
@@ -25,7 +29,8 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PLAT_WINDOWS_PHONE BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#if BOOST_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
+#if BOOST_OS_WINDOWS && \
+ defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
# undef BOOST_PLAT_WINDOWS_PHONE
# define BOOST_PLAT_WINDOWS_PHONE BOOST_VERSION_NUMBER_AVAILABLE
#endif
diff --git a/boost/predef/platform/windows_runtime.h b/boost/predef/platform/windows_runtime.h
index 03be5140e9..e7978d7525 100644
--- a/boost/predef/platform/windows_runtime.h
+++ b/boost/predef/platform/windows_runtime.h
@@ -9,25 +9,33 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_PLAT_WINDOWS_RUNTIME_H
#define BOOST_PREDEF_PLAT_WINDOWS_RUNTIME_H
-#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_phone.h>
+#include <boost/predef/platform/windows_store.h>
+#include <boost/predef/version_number.h>
/*`
[heading `BOOST_PLAT_WINDOWS_RUNTIME`]
+Deprecated.
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Phone or Store development. This does not align to the existing development model for
+UWP and is deprecated. Use one of the other `BOOST_PLAT_WINDOWS_*`definitions instead.
+
[table
[[__predef_symbol__] [__predef_version__]]
- [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]]
- [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]]
+ [[`BOOST_PLAT_WINDOWS_PHONE`] [__predef_detection__]]
+ [[`BOOST_PLAT_WINDOWS_STORE`] [__predef_detection__]]
]
*/
#define BOOST_PLAT_WINDOWS_RUNTIME BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#if BOOST_OS_WINDOWS && defined(WINAPI_FAMILY) && \
- ( WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP )
+#if BOOST_OS_WINDOWS && \
+ (BOOST_PLAT_WINDOWS_STORE || BOOST_PLAT_WINDOWS_PHONE)
# undef BOOST_PLAT_WINDOWS_RUNTIME
# define BOOST_PLAT_WINDOWS_RUNTIME BOOST_VERSION_NUMBER_AVAILABLE
#endif
diff --git a/boost/predef/platform/windows_server.h b/boost/predef/platform/windows_server.h
new file mode 100644
index 0000000000..7bd629da34
--- /dev/null
+++ b/boost/predef/platform/windows_server.h
@@ -0,0 +1,47 @@
+/*
+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)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_SERVER_H
+#define BOOST_PREDEF_PLAT_WINDOWS_SERVER_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_SERVER`]
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Server development.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_SERVER`] [__predef_detection__]]
+ ]
+ */
+
+#define BOOST_PLAT_WINDOWS_SERVER BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+ defined(WINAPI_FAMILY_SERVER) && WINAPI_FAMILY == WINAPI_FAMILY_SERVER
+# undef BOOST_PLAT_WINDOWS_SERVER
+# define BOOST_PLAT_WINDOWS_SERVER BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if BOOST_PLAT_WINDOWS_SERVER
+# define BOOST_PLAT_WINDOWS_SERVER_AVAILABLE
+# include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_SERVER_NAME "Windows Server"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_SERVER,BOOST_PLAT_WINDOWS_SERVER_NAME)
diff --git a/boost/predef/platform/windows_store.h b/boost/predef/platform/windows_store.h
index a34968b3dd..3a3fd8e982 100644
--- a/boost/predef/platform/windows_store.h
+++ b/boost/predef/platform/windows_store.h
@@ -9,23 +9,30 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_PLAT_WINDOWS_STORE_H
#define BOOST_PREDEF_PLAT_WINDOWS_STORE_H
-#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
/*`
[heading `BOOST_PLAT_WINDOWS_STORE`]
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Store development.
+
[table
[[__predef_symbol__] [__predef_version__]]
- [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]]
- ]
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_PC_APP`] [__predef_detection__]]
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_APP` (deprecated)] [__predef_detection__]]
+]
*/
#define BOOST_PLAT_WINDOWS_STORE BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#if BOOST_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP
+#if BOOST_OS_WINDOWS && \
+ ((defined(WINAPI_FAMILY_PC_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) || \
+ (defined(WINAPI_FAMILY_APP) && WINAPI_FAMILY == WINAPI_FAMILY_APP))
# undef BOOST_PLAT_WINDOWS_STORE
# define BOOST_PLAT_WINDOWS_STORE BOOST_VERSION_NUMBER_AVAILABLE
#endif
diff --git a/boost/predef/platform/windows_system.h b/boost/predef/platform/windows_system.h
new file mode 100644
index 0000000000..92f424fe7f
--- /dev/null
+++ b/boost/predef/platform/windows_system.h
@@ -0,0 +1,47 @@
+/*
+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)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_SYSTEM_H
+#define BOOST_PREDEF_PLAT_WINDOWS_SYSTEM_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_SYSTEM`]
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows System development.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM`] [__predef_detection__]]
+ ]
+ */
+
+#define BOOST_PLAT_WINDOWS_SYSTEM BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+ defined(WINAPI_FAMILY_SYSTEM) && WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM
+# undef BOOST_PLAT_WINDOWS_SYSTEM
+# define BOOST_PLAT_WINDOWS_SYSTEM BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if BOOST_PLAT_WINDOWS_SYSTEM
+# define BOOST_PLAT_WINDOWS_SYSTEM_AVAILABLE
+# include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_SYSTEM_NAME "Windows Drivers and Tools"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_SYSTEM,BOOST_PLAT_WINDOWS_SYSTEM_NAME)
diff --git a/boost/predef/platform/windows_uwp.h b/boost/predef/platform/windows_uwp.h
new file mode 100644
index 0000000000..e4c6647f41
--- /dev/null
+++ b/boost/predef/platform/windows_uwp.h
@@ -0,0 +1,60 @@
+/*
+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)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_UWP_H
+#define BOOST_PREDEF_PLAT_WINDOWS_UWP_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_UWP`]
+
+[@http://docs.microsoft.com/windows/uwp/ Universal Windows Platform]
+is available if the current development environment is capable of targeting
+UWP development.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__MINGW64_VERSION_MAJOR` from `_mingw.h`] [`>= 3`]]
+ [[`VER_PRODUCTBUILD` from `ntverp.h`] [`>= 9200`]]
+]
+*/
+
+#define BOOST_PLAT_WINDOWS_UWP BOOST_VERSION_NUMBER_NOT_AVAILABLE
+#define BOOST_PLAT_WINDOWS_SDK_VERSION BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS
+// MinGW (32-bit) has no ntverp.h header
+#if !defined(__MINGW32__)
+# include <ntverp.h>
+# undef BOOST_PLAT_WINDOWS_SDK_VERSION
+# define BOOST_PLAT_WINDOWS_SDK_VERSION BOOST_VERSION_NUMBER(0, 0, VER_PRODUCTBUILD)
+#endif
+
+// 9200 is Windows SDK 8.0 from ntverp.h which introduced family support
+#if ((BOOST_PLAT_WINDOWS_SDK_VERSION >= BOOST_VERSION_NUMBER(0, 0, 9200)) || \
+ (defined(__MINGW64__) && __MINGW64_VERSION_MAJOR >= 3))
+# undef BOOST_PLAT_WINDOWS_UWP
+# define BOOST_PLAT_WINDOWS_UWP BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+#endif
+
+#if BOOST_PLAT_WINDOWS_UWP
+# define BOOST_PLAT_WINDOWS_UWP_AVAILABLE
+# include <boost/predef/detail/platform_detected.h>
+# include <winapifamily.h> // Windows SDK
+#endif
+
+#define BOOST_PLAT_WINDOWS_UWP_NAME "Universal Windows Platform"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_UWP, BOOST_PLAT_WINDOWS_UWP_NAME)
diff --git a/boost/predef/version.h b/boost/predef/version.h
index e03469f68d..bcf97adfc2 100644
--- a/boost/predef/version.h
+++ b/boost/predef/version.h
@@ -10,6 +10,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
-#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,6,0)
+#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,7,0)
#endif