From a6d83ccea9075af783b91f86c37af1f4ec11b5bd Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 6 Dec 2011 11:56:51 -0500 Subject: 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 --- Modules/CMakeCCompilerId.c.in | 12 ++++++++++++ Modules/CMakeCXXCompilerId.cpp.in | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in index 25e4947..7a76897 100644 --- a/Modules/CMakeCCompilerId.c.in +++ b/Modules/CMakeCCompilerId.c.in @@ -61,6 +61,18 @@ #elif defined(_MSC_VER) # 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__) /* Analog Devices C++ compiler for Blackfin, TigerSHARC and diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in index 6494c27..9e21cbd 100644 --- a/Modules/CMakeCXXCompilerId.cpp.in +++ b/Modules/CMakeCXXCompilerId.cpp.in @@ -63,6 +63,18 @@ #elif defined(_MSC_VER) # 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__) /* Analog Devices C++ compiler for Blackfin, TigerSHARC and -- cgit v0.12