[CMake] recommended way to test for msvc/cl ?

David Cole david.cole at kitware.com
Mon Jan 30 13:56:40 EST 2006


I meant "compile*r* independent..." of course...

David Cole wrote:

> Wouldn't it be preferable to remain compile independent as much as 
> possible and avoid CMake blocks that are compiler specific?
>
> Perhaps a TRY_COMPILE would be more appropriate than the "compiler 
> matches regex" test...
>
> You didn't actually say when starting this thread why you wanted to 
> detect the cl compiler. Is it so you can set some compiler specific 
> flags? Or do you have source that is known only to compile with cl? Is 
> CMake missing a feature that requires you to know what compiler is 
> being used?
>
>
> Just probing for other possible solutions,
> David
>
> Alexander Neundorf wrote:
>
>> Hi,
>>  
>>
>>> Von: Brad King <brad.king at kitware.com>
>>> Alexander Neundorf wrote:   
>>>
>>>> There is a variable CMAKE_COMPILER_IS_GNUCC, which is set for gcc. 
>>>> AFAIK there is no CMAKE_COMPILER_IS_MSVC.   There are 
>>>> CMAKE_C_COMPILER and CMAKE_GENERATOR_CC, which are probably set to 
>>>> "cl" both for MSVC and nmake Makefiles ?   
>>>> So which test is recommended ?      
>>>
>>>
>>> We've used
>>> IF("${CMAKE_C_COMPILER}" MATCHES "^cl$")
>>> and this should work for you for now, but...   
>>
>>
>> Sure ? This one seems to be set to: D:/Programme/Microsoft Visual 
>> Studio 8/VC/bin/cl.exe So I'd go with  IF(CMAKE_C_COMPILER MATCHES 
>> "cl\\.exe") Why did you actually enclose the CMAKE_C_COMPILER in "..." ?
>> See here: http://lists.kde.org/?l=kde-core-devel&m=113854399503911&w=2
>> This has been generated using this script:
>>
>> http://websvn.kde.org/trunk/KDE/kdelibs/cmake/systeminfo/CMakeLists.txt?rev=503587&view=auto 
>>
>>
>>  
>>  
>>
>>>> Or how about adding a "MSVC" to the list above ?      
>>>
>>>
>>> There needs to be a whole compiler id step added to do this right.  
>>> It  can probably be integrated with the checks for a working 
>>> compiler, but  this has not yet been done.  It's been on my to-do 
>>> list for a long time.   
>>
>>
>> Can they simply be added to the files in Modules/Platforms/ ?
>> Bye Alex
>>
>>  
>>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>


More information about the CMake mailing list