瀏覽代碼

Fix CHECK_(C|CXX)_COMPILER_FLAG for Clang (#12394)

This compiler warns and returns 0 for unrecognized flags.  We fix the
compiler flag check macros by looking for a warning in the output.
Brad King 14 年之前
父節點
當前提交
ed6be501de
共有 2 個文件被更改,包括 2 次插入0 次删除
  1. 1 0
      Modules/CheckCCompilerFlag.cmake
  2. 1 0
      Modules/CheckCXXCompilerFlag.cmake

+ 1 - 0
Modules/CheckCCompilerFlag.cmake

@@ -30,6 +30,7 @@ MACRO (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
      FAIL_REGEX "warning: command line option .* is valid for .* but not for C"
                                                             # Apple gcc
      FAIL_REGEX "unrecognized .*option"                     # GNU
+     FAIL_REGEX "unknown .*option"                          # Clang
      FAIL_REGEX "ignoring unknown option"                   # MSVC
      FAIL_REGEX "warning D9002"                             # MSVC, any lang
      FAIL_REGEX "[Uu]nknown option"                         # HP

+ 1 - 0
Modules/CheckCXXCompilerFlag.cmake

@@ -28,6 +28,7 @@ MACRO (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
    CHECK_CXX_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}
      # Some compilers do not fail with a bad flag
      FAIL_REGEX "unrecognized .*option"                     # GNU
+     FAIL_REGEX "unknown .*option"                          # Clang
      FAIL_REGEX "ignoring unknown option"                   # MSVC
      FAIL_REGEX "warning D9002"                             # MSVC, any lang
      FAIL_REGEX "[Uu]nknown option"                         # HP