1 | /* |
2 | Copyright Rene Rivera 2008-2015 |
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_MINGW_H |
9 | #define BOOST_PREDEF_PLAT_MINGW_H |
10 | |
11 | #include <boost/predef/version_number.h> |
12 | #include <boost/predef/make.h> |
13 | |
14 | /* tag::reference[] |
15 | = `BOOST_PLAT_MINGW` |
16 | |
17 | http://en.wikipedia.org/wiki/MinGW[MinGW] platform, either variety. |
18 | Version number available as major, minor, and patch. |
19 | |
20 | [options="header"] |
21 | |=== |
22 | | {predef_symbol} | {predef_version} |
23 | |
24 | | `+__MINGW32__+` | {predef_detection} |
25 | | `+__MINGW64__+` | {predef_detection} |
26 | |
27 | | `+__MINGW64_VERSION_MAJOR+`, `+__MINGW64_VERSION_MINOR+` | V.R.0 |
28 | | `+__MINGW32_VERSION_MAJOR+`, `+__MINGW32_VERSION_MINOR+` | V.R.0 |
29 | |=== |
30 | */ // end::reference[] |
31 | |
32 | #define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_NOT_AVAILABLE |
33 | |
34 | #if defined(__MINGW32__) || defined(__MINGW64__) |
35 | # include <_mingw.h> |
36 | # if !defined(BOOST_PLAT_MINGW_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)) |
37 | # define BOOST_PLAT_MINGW_DETECTION \ |
38 | BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0) |
39 | # endif |
40 | # if !defined(BOOST_PLAT_MINGW_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR)) |
41 | # define BOOST_PLAT_MINGW_DETECTION \ |
42 | BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0) |
43 | # endif |
44 | # if !defined(BOOST_PLAT_MINGW_DETECTION) |
45 | # define BOOST_PLAT_MINGW_DETECTION BOOST_VERSION_NUMBER_AVAILABLE |
46 | # endif |
47 | #endif |
48 | |
49 | #ifdef BOOST_PLAT_MINGW_DETECTION |
50 | # define BOOST_PLAT_MINGW_AVAILABLE |
51 | # if defined(BOOST_PREDEF_DETAIL_PLAT_DETECTED) |
52 | # define BOOST_PLAT_MINGW_EMULATED BOOST_PLAT_MINGW_DETECTION |
53 | # else |
54 | # undef BOOST_PLAT_MINGW |
55 | # define BOOST_PLAT_MINGW BOOST_PLAT_MINGW_DETECTION |
56 | # endif |
57 | # include <boost/predef/detail/platform_detected.h> |
58 | #endif |
59 | |
60 | #define BOOST_PLAT_MINGW_NAME "MinGW (any variety)" |
61 | |
62 | #endif |
63 | |
64 | #include <boost/predef/detail/test.h> |
65 | BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW,BOOST_PLAT_MINGW_NAME) |
66 | |
67 | #ifdef BOOST_PLAT_MINGW_EMULATED |
68 | #include <boost/predef/detail/test.h> |
69 | BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW_EMULATED,BOOST_PLAT_MINGW_NAME) |
70 | #endif |
71 | |