On Wed, Oct 7, 2009 at 11:24 PM, Belcourt, Kenneth
<kbelco@sandia.gov> wrote:
Hi Philip,
On Oct 7, 2009, at 7:55 PM, Philip Lowman wrote:
On Wed, Oct 7, 2009 at 11:12 AM, Justin Holewinski
<shawmishrak@gmail.com> wrote:
I am trying to compile Boost 1.40 with the Intel C++ Compiler, Version 11.1, using CMake and I've encountered two issues so far.
First, on Windows, the Intel C++ Compiler follows Microsoft's naming convention. The compiler executable is icl.exe, not icc.exe or icpc.exe. Hence, the BoostConfig.cmake script fails to detect the Intel compiler on Windows because it tries to match the compiler name against icpc.exe. The fix is trivial. In BoostConfig.cmake, add an additional conditional on line 89:
elseif(CMAKE_CXX_COMPILER MATCHES "/icpc$" OR CMAKE_CXX_COMPILER MATCHES "/icpc.exe$" OR CMAKE_CXX_COMPILER MATCHES "/icl.exe$")
I'm not sure what impact this has on the build process other than applying the 'intel' branding to the generated libraries instead of 'unknown'.
I can fix this in CVS, but might have a slightly better way. Can you tell me what the value of CMAKE_CXX_COMPILER_ID is on Intel C++?
It's Intel
Thanks. I completely missed the reference to BoostConfig.cmake. When I said I could fix this in CVS, I meant CMake's FindBoost.cmake module which has similar code to what is listed above but on inspection doesn't appear vulnerable to the problem you identified above. Regardless, I added the following condition to FindBoost.cmake, which is probably better anyways.
OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel"
--