Detect MSVC compiler version with its id

Decode decimal digits from _MSC_VER, _MSC_FULL_VER, and _MSC_BUILD to
compute the version number components.  See documentation at:

  http://msdn.microsoft.com/en-us/library/b0084kay.aspx
  http://predef.sourceforge.net/precomp.html
This commit is contained in:
Brad King 2011-12-06 11:56:51 -05:00
parent a66285583d
commit a6d83ccea9
2 changed files with 24 additions and 0 deletions

View File

@ -61,6 +61,18 @@
#elif defined(_MSC_VER) #elif defined(_MSC_VER)
# define COMPILER_ID "MSVC" # define COMPILER_ID "MSVC"
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) #elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
/* Analog Devices C++ compiler for Blackfin, TigerSHARC and /* Analog Devices C++ compiler for Blackfin, TigerSHARC and

View File

@ -63,6 +63,18 @@
#elif defined(_MSC_VER) #elif defined(_MSC_VER)
# define COMPILER_ID "MSVC" # define COMPILER_ID "MSVC"
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) #elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
/* Analog Devices C++ compiler for Blackfin, TigerSHARC and /* Analog Devices C++ compiler for Blackfin, TigerSHARC and