VS2005のとき、_WIN32_WINNTの値をチェックするようにした
@@ -17,6 +17,9 @@ | ||
17 | 17 | set(_WIN32_WINNT "0x0a00") |
18 | 18 | if(MSVC) |
19 | 19 | # https://www.leeholmes.com/blog/2017/02/27/differences-between-visual-studio-2012-2013-and-2015/ |
20 | + if(${CMAKE_GENERATOR} MATCHES "Visual Studio 8 2005") | |
21 | + set(_WIN32_WINNT "0x0501") | |
22 | + endif() | |
20 | 23 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_WIN32_WINNT=${_WIN32_WINNT}") |
21 | 24 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D_WIN32_WINNT=${_WIN32_WINNT}") |
22 | 25 | string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) |
@@ -48,6 +48,16 @@ | ||
48 | 48 | #endif |
49 | 49 | |
50 | 50 | /* |
51 | + * VS2005を使っている場合、 | |
52 | + * _WIN32_WINNT が 0x0501 でなければエラーを出す | |
53 | + */ | |
54 | +#if _MSC_VER == 1400 // VS2005 | |
55 | +#if _WIN32_WINNT != 0x0501 | |
56 | +#error check _WIN32_WINNT | |
57 | +#endif | |
58 | +#endif | |
59 | + | |
60 | +/* | |
51 | 61 | * _WIN32_WINNTから次のdefineを適切に設定する |
52 | 62 | * NTDDI_VERSION |
53 | 63 | * WINVER |
@@ -6,6 +6,8 @@ | ||
6 | 6 | // infos when generated |
7 | 7 | #cmakedefine MSVC |
8 | 8 | #cmakedefine MINGW |
9 | +// _WIN32_WINNT | |
10 | +// @_WIN32_WINNT@ | |
9 | 11 | // CMAKE_GENERATOR |
10 | 12 | // @CMAKE_GENERATOR@ |
11 | 13 | // CMAKE_GENERATOR_TOOLSET (VS 2010 and above) |