[CMake] [Windows] clang-cl.exe detected as MSVC?
Konstantin Tokarev
annulen at yandex.ru
Tue Sep 12 08:53:50 EDT 2017
11.09.2017, 18:12, "Mateusz Loskot" <mateusz at loskot.net>:
> On 11 September 2017 at 17:04, Konstantin Tokarev <annulen at yandex.ru> wrote:
>> 11.09.2017, 17:59, "Mateusz Loskot" <mateusz at loskot.net>:
>>> Hi,
>>>
>>> I'm building a project with CMake 3.9 using clang-cl.exe driver [1]
>>> from LLVM/clang 4.0 enabled with Visual Studio 2015 environment.
>>>
>>> CMake detects the compiler as Clang 4.0.0:
>>>
>>> -- The C compiler identification is Clang 4.0.0
>>> -- The CXX compiler identification is Clang 4.0.0
>>> -- Check for working C compiler: C:/Program Files/LLVM/bin/clang-cl.exe
>>> -- Check for working C compiler: C:/Program Files/LLVM/bin/clang-cl.exe -- works
>>>
>>> and my project builds fine.
>>>
>>> In my CMakeLists.txt, there is this flags update:
>>>
>>> if(MSVC)
>>> set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
>>> endif()
>>>
>>> and in build log I see:
>>>
>>> clang-cl.exe: warning: argument unused during compilation: '/MP'
>>>
>>> I have double-checked and MSVC is defined and set True for clang-cl.exe.
>>>
>>> Is this correct?
>>
>> Yes. clang-cl is mostly compatible with MSVC on the command line
>
> Mostly, or less or more, it's subjective and my experience show it is not
> as compatible as one may expect.
> Also, AFAIU, compatibility is only at driver level that is command
> line interface.
>
>> so it's natural that MSVC code in existing projects is applied to clang-cl too.
>
> I'd rather expect CL.exe exclusively considered as CL.exe
For fine-grained distinction you have CMAKE_CXX_COMPILER_ID
>
> Best regards,
> --
> Mateusz Loskot, http://mateusz.loskot.net
--
Regards,
Konstantin
More information about the CMake
mailing list