summaryrefslogtreecommitdiffstats
path: root/contrib/src/boost/detail/winapi/config.hpp
blob: bb36944258fbd4bb4a1bfcef7d8f4507f0c0f513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//  config.hpp  --------------------------------------------------------------//


//  Copyright 2013 Andrey Semashev


//  Distributed under the Boost Software License, Version 1.0.

//  See http://www.boost.org/LICENSE_1_0.txt



#ifndef BOOST_DETAIL_WINAPI_CONFIG_HPP_INCLUDED_

#define BOOST_DETAIL_WINAPI_CONFIG_HPP_INCLUDED_


#if defined __MINGW32__

#include <_mingw.h>

#endif


// BOOST_WINAPI_IS_MINGW indicates that the target Windows SDK is provided by MinGW (http://mingw.org/).

// BOOST_WINAPI_IS_MINGW_W64 indicates that the target Windows SDK is provided by MinGW-w64 (http://mingw-w64.org).

#if defined __MINGW32__

#if defined __MINGW64_VERSION_MAJOR

#define BOOST_WINAPI_IS_MINGW_W64

#else

#define BOOST_WINAPI_IS_MINGW

#endif

#endif


// These constants reflect _WIN32_WINNT_* macros from sdkddkver.h

// See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745%28v=vs.85%29.aspx#setting_winver_or__win32_winnt

#define BOOST_WINAPI_VERSION_NT4 0x0400

#define BOOST_WINAPI_VERSION_WIN2K 0x0500

#define BOOST_WINAPI_VERSION_WINXP 0x0501

#define BOOST_WINAPI_VERSION_WS03 0x0502

#define BOOST_WINAPI_VERSION_WIN6 0x0600

#define BOOST_WINAPI_VERSION_VISTA 0x0600

#define BOOST_WINAPI_VERSION_WS08 0x0600

#define BOOST_WINAPI_VERSION_LONGHORN 0x0600

#define BOOST_WINAPI_VERSION_WIN7 0x0601

#define BOOST_WINAPI_VERSION_WIN8 0x0602

#define BOOST_WINAPI_VERSION_WINBLUE 0x0603

#define BOOST_WINAPI_VERSION_WINTHRESHOLD 0x0A00

#define BOOST_WINAPI_VERSION_WIN10 0x0A00


#if !defined(BOOST_USE_WINAPI_VERSION)

#if defined(_WIN32_WINNT)

#define BOOST_USE_WINAPI_VERSION _WIN32_WINNT

#elif defined(WINVER)

#define BOOST_USE_WINAPI_VERSION WINVER

#else

// By default use Windows Vista API on compilers that support it and XP on the others

#if (defined(_MSC_VER) && _MSC_VER < 1500) || defined(BOOST_WINAPI_IS_MINGW)

#define BOOST_USE_WINAPI_VERSION BOOST_WINAPI_VERSION_WINXP

#else

#define BOOST_USE_WINAPI_VERSION BOOST_WINAPI_VERSION_WIN6

#endif

#endif

#endif


#define BOOST_DETAIL_WINAPI_MAKE_NTDDI_VERSION2(x) x##0000

#define BOOST_DETAIL_WINAPI_MAKE_NTDDI_VERSION(x) BOOST_DETAIL_WINAPI_MAKE_NTDDI_VERSION2(x)


#if defined(BOOST_USE_WINDOWS_H) || defined(BOOST_WINAPI_DEFINE_VERSION_MACROS)

// We have to define the version macros so that windows.h provides the necessary symbols

#if !defined(_WIN32_WINNT)

#define _WIN32_WINNT BOOST_USE_WINAPI_VERSION

#endif

#if !defined(WINVER)

#define WINVER BOOST_USE_WINAPI_VERSION

#endif

#if !defined(NTDDI_VERSION)

#define NTDDI_VERSION BOOST_DETAIL_WINAPI_MAKE_NTDDI_VERSION(BOOST_USE_WINAPI_VERSION)

#endif

#endif


#include <boost/config.hpp>


#ifdef BOOST_HAS_PRAGMA_ONCE

#pragma once

#endif


#endif // BOOST_DETAIL_WINAPI_CONFIG_HPP_INCLUDED_