1/*
2Copyright Rene Rivera 2008-2015
3Distributed under the Boost Software License, Version 1.0.
4(See accompanying file LICENSE_1_0.txt or copy at
5http://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
17http://en.wikipedia.org/wiki/MinGW[MinGW] platform, either variety.
18Version 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>
65BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW,BOOST_PLAT_MINGW_NAME)
66
67#ifdef BOOST_PLAT_MINGW_EMULATED
68#include <boost/predef/detail/test.h>
69BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW_EMULATED,BOOST_PLAT_MINGW_NAME)
70#endif
71

source code of include/boost/predef/platform/mingw.h