if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
string(APPEND _target_flags " GCC")
endif()
-if(CMAKE_C_COMPILER_ID MATCHES "Clang")
- if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
- string(APPEND _target_flags " APPLE-CLANG")
- elseif(MSVC)
- string(APPEND _target_flags " CLANG-CL")
- else()
- string(APPEND _target_flags " LLVM-CLANG")
- endif()
+if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
+ string(APPEND _target_flags " APPLE-CLANG")
+elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND MSVC)
+ string(APPEND _target_flags " CLANG-CL")
+elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
+ string(APPEND _target_flags " LLVM-CLANG")
endif()
if(MINGW)
string(APPEND _target_flags " MINGW")
set(_examples_c "${check_PROGRAMS}")
list(TRANSFORM _examples_c APPEND ".c")
add_library(${_target_name} OBJECT EXCLUDE_FROM_ALL ${_examples_c})
- if(MSVC AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
+ if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") # MSVC but exclude clang-cl
# CMake generates a static library for the OBJECT target. Silence these 'lib.exe' warnings:
# warning LNK4006: main already defined in ....obj; second definition ignored
# warning LNK4221: This object file does not define any previously undefined public symbols,