MantisBT - CMake
View Issue Details
0015889CMakeCMakepublic2015-12-19 16:002016-06-10 14:21
Vivien Millet 
Brad King 
highmajoralways
closedfixed 
Win64Windows 7
CMake 3.4.1 
CMake 3.4.2CMake 3.4.2 
0015889: IA64 compilers not found in Visual Studio 2010 (and probably others)
In the CMakeDetermineCompilerId at line 186 there is :

set(id_platform ia64)

this leads to generate a bad CompilerIdC(XX).vcxproj with Debug|ia64 and Release|ia64 configurations, not recognized by devenv.exe.
Indeed devenv.exe onyl recognize "Itanium".
The question is why changing "Itanium" to "ia64" in the .cmake because without this line everything goes well and the IA compilers are found
Try to configure any CMake project with Visual Studio 2010 IA64, and compilers won't be found.
No tags attached.
Issue History
2015-12-19 16:00Vivien MilletNew Issue
2015-12-21 08:47Brad KingNote Added: 0040008
2015-12-21 08:55Vivien MilletNote Added: 0040009
2015-12-21 09:29Brad KingNote Added: 0040011
2015-12-21 09:35Brad KingNote Added: 0040012
2015-12-21 09:35Brad KingAssigned To => Brad King
2015-12-21 09:35Brad KingStatusnew => resolved
2015-12-21 09:35Brad KingResolutionopen => fixed
2015-12-21 09:35Brad KingFixed in Version => CMake 3.5
2015-12-21 09:35Brad KingTarget Version => CMake 3.5
2015-12-21 09:39Vivien MilletNote Added: 0040013
2016-01-20 10:23Brad KingFixed in VersionCMake 3.5 => CMake 3.4.2
2016-01-20 10:23Brad KingTarget VersionCMake 3.5 => CMake 3.4.2
2016-06-10 14:21Kitware RobotNote Added: 0041282
2016-06-10 14:21Kitware RobotStatusresolved => closed

Notes
(0040008)
Brad King   
2015-12-21 08:47   
Support for Itanium is not well-tested or widely used so this is not surprising. Are you saying that

-set(id_platform ia64)
+set(id_platform Itanium)

is the only change needed to fix the problem?
(0040009)
Vivien Millet   
2015-12-21 08:55   
I understand that it's not surprising indeed.

-set(id_platform ia64)

should be enough because the id_platform already has the "Itanium" value by default when platform Itanium is chosen (logical).
I only tested that on visual studio 2010 though. It may be necessary to check if Visual Studio has not changed its platform ID/names since (2012/2013/2015) on MSDN.
And maybe ask directly the one that added this line to know the reason.
(0040011)
Brad King   
2015-12-21 09:29   
Thanks. It looks like the current code evolved with this wrong since it was first added here:

 VS: Detect the compiler id and tool location
 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=66cb3356 [^]

As of that version the VS 9 generator had the correct value:

 https://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmGlobalVisualStudio9IA64Generator.cxx;hb=66cb3356#l19 [^]

but the VS 10 generator did not:

 https://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmGlobalVisualStudio10IA64Generator.cxx;hb=66cb3356#l19 [^]

The latter was corrected by

 VS: Fix ArchitectureId of Visual Studio 10 IA64 generator
 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8d42ab42 [^]

but the CMakeDetermineCompilerId bug remains. I guess no one has been using this for a long time.
(0040012)
Brad King   
2015-12-21 09:35   
This should fix it:

 CMakeDetermineCompilerId: Fix VS Itanium platform name
 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d9bf5206 [^]
(0040013)
Vivien Millet   
2015-12-21 09:39   
It's what i've done on my side to fix the issue ! Great !
(0041282)
Kitware Robot   
2016-06-10 14:21   
This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.