Browse Source

C++ feature checks: Filter out warnings caused by user flags

Filter out `-Winvalid-command-line-argument` warnings from Clang (that
can be caused by user-specified flags) so that they do not break our
checks for C++ feature availability.
Brad King 8 years ago
parent
commit
71b65abca2
1 changed files with 2 additions and 0 deletions
  1. 2 0
      Source/Checks/cm_cxx_features.cmake

+ 2 - 0
Source/Checks/cm_cxx_features.cmake

@@ -17,6 +17,8 @@ function(cm_check_cxx_feature name)
     set(check_output "${OUTPUT}")
     set(check_output "${OUTPUT}")
     # Filter out MSBuild output that looks like a warning.
     # Filter out MSBuild output that looks like a warning.
     string(REGEX REPLACE " +0 Warning\\(s\\)" "" check_output "${check_output}")
     string(REGEX REPLACE " +0 Warning\\(s\\)" "" check_output "${check_output}")
+    # Filter out warnings caused by user flags.
+    string(REGEX REPLACE "[^\n]*warning:[^\n]*-Winvalid-command-line-argument[^\n]*" "" check_output "${check_output}")
     # If using the feature causes warnings, treat it as broken/unavailable.
     # If using the feature causes warnings, treat it as broken/unavailable.
     if(check_output MATCHES "[Ww]arning")
     if(check_output MATCHES "[Ww]arning")
       set(CMake_HAVE_CXX_${FEATURE} OFF CACHE INTERNAL "TRY_COMPILE" FORCE)
       set(CMake_HAVE_CXX_${FEATURE} OFF CACHE INTERNAL "TRY_COMPILE" FORCE)