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

Другие вопросы по тегам