From f350babf36818ba805ab0b4510b6616aaf3063fc Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 8 May 2015 02:20:00 +0200 Subject: [PATCH] Recognize MSVC 14 a.k.a. Visual Studio 2015 compiler. Interpret internal compiler version value 1900 as VC14. Notice that this required adjusting the computation of the internal version from the user-visible one because VC13 was skipped (hopefully no black cats crossed paths with the manager responsible for this decision). See #16854. --- include/msvc/wx/setup.h | 2 ++ include/wx/compiler.h | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/msvc/wx/setup.h b/include/msvc/wx/setup.h index 09e435b228b3..3d2f068fd84d 100644 --- a/include/msvc/wx/setup.h +++ b/include/msvc/wx/setup.h @@ -63,6 +63,8 @@ #define wxCOMPILER_PREFIX vc110 #elif _MSC_VER == 1800 #define wxCOMPILER_PREFIX vc120 + #elif _MSC_VER == 1900 + #define wxCOMPILER_PREFIX vc140 #else #error "Unknown MSVC compiler version, please report to wx-dev." #endif diff --git a/include/wx/compiler.h b/include/wx/compiler.h index 4d334d74d92f..dfab0a25b4d7 100644 --- a/include/wx/compiler.h +++ b/include/wx/compiler.h @@ -49,7 +49,14 @@ # define __VISUALC11__ #elif __VISUALC__ < 1900 # define __VISUALC12__ +#elif __VISUALC__ < 2000 + /* There is no __VISUALC13__! */ +# define __VISUALC14__ #else + /* + Don't forget to update include/msvc/wx/setup.h as well when adding + support for a newer MSVC version here. + */ # pragma message("Please update wx/compiler.h to recognize this VC++ version") #endif @@ -89,7 +96,13 @@ # define wxVISUALC_VERSION(major) 0 # define wxCHECK_VISUALC_VERSION(major) 0 #else -# define wxVISUALC_VERSION(major) ( (6 + major) * 100 ) + /* + Things used to be simple with the _MSC_VER value and the version number + increasing in lock step, but _MSC_VER value of 1900 is VC14 and not the + non existing (presumably for the superstitious reasons) VC13, so we now + need to account for this with an extra offset. + */ +# define wxVISUALC_VERSION(major) ( (6 + (major >= 14 ? 1 : 0) + major) * 100 ) # define wxCHECK_VISUALC_VERSION(major) ( __VISUALC__ >= wxVISUALC_VERSION(major) ) #endif