Add wxMSVC_VERSION_ABI_COMPAT
This symbol can be predefined to use the libraries built with "vc14x" as the compiler prefix. This can be useful to reuse the same binaries for all ABI-compatible VC 14.x versions: 14.0 (MSVS 2015), 14.1 (2017) and 14.2 (2019).
This commit is contained in:
@@ -226,7 +226,12 @@ vc140 <em>before</em> include @c wx/setup.h file, i.e. typically in the MSVS
|
||||
project options. Alternatively, you can predefine @c wxMSVC_VERSION_AUTO symbol
|
||||
(without any value), which means that the appropriate compiler version should
|
||||
be used automatically, e.g. "vc100" for VC 10 (MSVS 2010), "vc140" for VC 14
|
||||
(MSVS 2015) etc.
|
||||
(MSVS 2015) etc. Additionally, VC 14 is a special case as it has 3 minor
|
||||
versions: VC 14.0, 14.1 and 14.2, corresponding to MSVS 2015, 2017 and 2019;
|
||||
that are ABI-compatible with each other. Due to this, it can also be useful to
|
||||
reuse the single build of wxWidgets with all versions of the compiler and this
|
||||
is supported if @c wxMSVC_VERSION_ABI_COMPAT is defined: the compiler prefix
|
||||
"vc14x" is used in this case.
|
||||
|
||||
If the makefiles have been used to build the libraries from source and the @c CFG
|
||||
variable has been set to specify a different output path for that particular
|
||||
|
@@ -44,9 +44,16 @@
|
||||
// COMPILER_PREFIX=vcXX and in this case you may want to either predefine
|
||||
// wxMSVC_VERSION as "XX" or define wxMSVC_VERSION_AUTO to use the appropriate
|
||||
// version depending on the compiler used
|
||||
//
|
||||
// There is an additional complication with MSVC 14.0, 14.1 and 14.2 versions
|
||||
// (a.k.a. MSVS 2015, 2017 and 2019): as they're all ABI-compatible with each
|
||||
// other, it is convenient to use the same "vc14x" compiler prefix for all of
|
||||
// them, but this is not how wxMSVC_VERSION_AUTO behaves by default, so you
|
||||
// need to additionally define wxMSVC_VERSION_ABI_COMPAT to opt in into using
|
||||
// this "vc14x" prefix.
|
||||
#ifdef wxMSVC_VERSION
|
||||
#define wxCOMPILER_PREFIX wxCONCAT(vc, wxMSVC_VERSION)
|
||||
#elif defined(wxMSVC_VERSION_AUTO)
|
||||
#elif defined(wxMSVC_VERSION_AUTO) || defined(wxMSVC_VERSION_ABI_COMPAT)
|
||||
#if _MSC_VER == 1200
|
||||
#define wxCOMPILER_PREFIX vc60
|
||||
#elif _MSC_VER == 1300
|
||||
@@ -63,12 +70,20 @@
|
||||
#define wxCOMPILER_PREFIX vc110
|
||||
#elif _MSC_VER == 1800
|
||||
#define wxCOMPILER_PREFIX vc120
|
||||
#elif _MSC_VER == 1900
|
||||
#elif _MSC_VER >= 1900 && _MSC_VER < 2000
|
||||
#ifdef wxMSVC_VERSION_ABI_COMPAT
|
||||
#define wxCOMPILER_PREFIX vc14x
|
||||
#else
|
||||
#if _MSC_VER < 1910
|
||||
#define wxCOMPILER_PREFIX vc140
|
||||
#elif _MSC_VER >= 1910 && _MSC_VER < 1920
|
||||
#define wxCOMPILER_PREFIX vc141
|
||||
#elif _MSC_VER >= 1920 && _MSC_VER < 2000
|
||||
#define wxCOMPILER_PREFIX vc142
|
||||
#else
|
||||
#error "Unknown MSVC 14.x compiler version, please report to wx-dev."
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#error "Unknown MSVC compiler version, please report to wx-dev."
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user