Cmake обнаруживает Clang-Cl как Clang
Я собрал boringssl с помощью cmake и msvc. Затем я попытался собрать с помощью clang-cl, поэтому я использовал -T"LLVM-vs2014" в аргументах vmake.
Clang-cl использует аргументы cl, однако cmake использовал аргументы стиля gcc без добавления -Xclang
2 ответа
Решение
Правильный способ справиться с этим делом - проверить
(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"))
Проблема была здесь:
if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wshadow -Werror -Wno-error=shadow -Wno-error=unused-value -ggdb -std=gnu89")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wshadow -Werror -Wno-error=shadow -Wno-error=unused-value -ggdb -std=c++0x")
Я изменил Clang на Clng, поэтому clang-cl не был идентифицирован как clang.exe, который принимает аргументы в стиле gcc