From eddabf9fcf1783834dd7fdda335c54d08b44b0cc Mon Sep 17 00:00:00 2001
Message-Id: <eddabf9fcf1783834dd7fdda335c54d08b44b0cc.1394801535.git.brad.king@kitware.com>
From: Brad King <brad.king@kitware.com>
Date: Fri, 14 Mar 2014 08:41:24 -0400
Subject: [PATCH] CMake*CompilerId: Fix patch level for Intel >= 14.0 (#14806)

According to the Intel release notes:

 http://software.intel.com/sites/default/files/l-compiler-release-update.pdf

the __INTEL_COMPILER_UPDATE predefined macro was introduced to hold the
third version component.

Reported-by: Dirk Ribbrock <dirk.ribbrock@mathematik.uni-dortmund.de>
Co-Author: Rolf Eike Beer <kde@opensource.sf-tec.de>
---
 Modules/CMakeCCompilerId.c.in     | 6 +++++-
 Modules/CMakeCXXCompilerId.cpp.in | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in
index 52f9590..561ccf2 100644
--- a/Modules/CMakeCCompilerId.c.in
+++ b/Modules/CMakeCCompilerId.c.in
@@ -14,7 +14,11 @@
   /* __INTEL_COMPILER = VRP */
 # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
 # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER    % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
 # if defined(__INTEL_COMPILER_BUILD_DATE)
   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
 #  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in
index 25ceb3f..6c602d4 100644
--- a/Modules/CMakeCXXCompilerId.cpp.in
+++ b/Modules/CMakeCXXCompilerId.cpp.in
@@ -19,7 +19,11 @@
   /* __INTEL_COMPILER = VRP */
 # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
 # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER    % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
 # if defined(__INTEL_COMPILER_BUILD_DATE)
   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
 #  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
-- 
1.8.5.2

