MantisBT - CMake
View Issue Details
0014806CMakeCMakepublic2014-03-14 05:002014-10-06 10:32
Dirk Ribbrock 
Brad King 
lowminoralways
closedfixed 
Ubuntu12.04 / 13.10
CMake 2.8.11.2 
CMake 3.0CMake 3.0 
0014806: cmake does not detect correct intel c/c++ compiler version
If used with intel cce 14.0.1 or 14.0.2 cmake reports
-- The CXX compiler identification is Intel 14.0.0.20131008
or
-- The CXX compiler identification is Intel 14.0.0.20140120,
thus detecting the correct build date but the wrong version number.
Just set CXX to icpc and configure any cmake project with 'cmake .' while using an icpc version greater then 14.0.0.
The mechanism how intel reports its compiler version has changed between 13 and 14 but i happen to not find the corresponding files at this moment :(
No tags attached.
patch compilerid.patch (795) 2014-03-14 05:39
https://public.kitware.com/Bug/file/5093/compilerid.patch
patch 0001-CMake-CompilerId-Fix-patch-level-for-Intel-14.0.patch (2,341) 2014-03-14 08:51
https://public.kitware.com/Bug/file/5094/0001-CMake-CompilerId-Fix-patch-level-for-Intel-14.0.patch
Issue History
2014-03-14 05:00Dirk RibbrockNew Issue
2014-03-14 05:09Rolf Eike BeerNote Added: 0035395
2014-03-14 05:30Dirk RibbrockNote Added: 0035396
2014-03-14 05:39Rolf Eike BeerFile Added: compilerid.patch
2014-03-14 05:39Rolf Eike BeerNote Added: 0035397
2014-03-14 06:15Dirk RibbrockNote Added: 0035398
2014-03-14 08:43Brad KingAssigned To => Brad King
2014-03-14 08:43Brad KingStatusnew => assigned
2014-03-14 08:43Brad KingTarget Version => CMake 3.0
2014-03-14 08:51Brad KingFile Added: 0001-CMake-CompilerId-Fix-patch-level-for-Intel-14.0.patch
2014-03-14 08:52Brad KingNote Added: 0035401
2014-03-14 09:34Dirk RibbrockNote Added: 0035404
2014-03-14 09:40Brad KingNote Added: 0035407
2014-03-14 09:40Brad KingStatusassigned => resolved
2014-03-14 09:40Brad KingResolutionopen => fixed
2014-03-14 09:40Brad KingFixed in Version => CMake 3.0
2014-10-06 10:32Robert MaynardNote Added: 0036943
2014-10-06 10:32Robert MaynardStatusresolved => closed

Notes
(0035395)
Rolf Eike Beer   
2014-03-14 05:09   
Are you looking for Modules/CMakeCCompilerId.c.in?
(0035396)
Dirk Ribbrock   
2014-03-14 05:30   
Found, what i was searching for :)

http://software.intel.com/sites/default/files/l-compiler-release-update.pdf [^]
page 9, "2.1.4 New __INTEL_COMPILER_UPDATE predefined macro in Intel C++ Compiler 14.0"

At least in my CMakeCCompilerID.c.in file, this macro is not used.
(0035397)
Rolf Eike Beer   
2014-03-14 05:39   
Please try if the attached patch makes it work.
(0035398)
Dirk Ribbrock   
2014-03-14 06:15   
Thanks for the fast response.

Your Patch produces something like
-- The C compiler identification is Intel 14.0.;INFO:compiler[Intel
with cmake version 2.8.11.2

But if i add a DEC in
-# define COMPILER_VERSION_PATCH __INTEL_COMPILER_UPDATE
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
it works as expected:
-- The C compiler identification is Intel 14.0.2.20140120

I have no idea, what is happening there - just added the DEC for symmetric reasons :)

As far as i understand the definition of DEC in CMakePlatformId.h.in, i cannot explain why this works at all.
(0035401)
Brad King   
2014-03-14 08:52   
Re 0014806:0035398: The DEC() markup means we expect the version digits to be encoded as a decimal number, as against HEX() used by some other compilers.

Please try "0001-CMake-CompilerId-Fix-patch-level-for-Intel-14.0.patch".
(0035404)
Dirk Ribbrock   
2014-03-14 09:34   
This patch works for me:

-- The C compiler identification is Intel 14.0.2.20140120
-- The CXX compiler identification is Intel 14.0.2.20140120

Thanks in advance.
(0035407)
Brad King   
2014-03-14 09:40   
Thanks for testing. Applied:

 CMake*CompilerId: Fix patch level for Intel >= 14.0
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eddabf9f [^]

I've also queued it for 3.0.0-rc2.
(0036943)
Robert Maynard   
2014-10-06 10:32   
Closing resolved issues that have not been updated in more than 4 months.