Boost logo

Boost Interest :

Subject: Re: [Boost-cmake] Issues with Intel C++
From: Philip Lowman (philip_at_[hidden])
Date: 2009-10-09 01:18:47


On Wed, Oct 7, 2009 at 11:24 PM, Belcourt, Kenneth <kbelco_at_[hidden]>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_at_[hidden]>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"

-- 
Philip Lowman


Boost-cmake list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk