Browse Source

CMakeDetermineCompilerABI: Remove -Werror from per-config flags

Extend the fixes from

* commit 079ea66468 (CMakeDetermineCompilerABI: Handle NVCC-style -Werror
  flags, 2020-10-04, v3.19.0-rc1~45^2), and
* commit cec6f98018 (CMakeDetermineCompilerABI: Avoid removing the flag
  after -Werror, 2023-05-29, v3.26.5~4^2)

to apply to the per-config flags propagated by CMP0066's NEW behavior.
Sung, Po Han 1 year ago
parent
commit
e60281e968
1 changed files with 8 additions and 1 deletions
  1. 8 1
      Modules/CMakeDetermineCompilerABI.cmake

+ 8 - 1
Modules/CMakeDetermineCompilerABI.cmake

@@ -50,7 +50,14 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
     __TestCompiler_setTryCompileTargetType()
 
     # Avoid failing ABI detection on warnings.
-    string(REGEX REPLACE "(^| )-Werror([= ][^-][^ ]*)?( |$)" " " CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS}")
+    if(CMAKE_TRY_COMPILE_CONFIGURATION)
+      string(TOUPPER "${CMAKE_TRY_COMPILE_CONFIGURATION}" _tc_config)
+    else()
+      set(_tc_config "DEBUG")
+    endif()
+    foreach(v CMAKE_${lang}_FLAGS CMAKE_${lang}_FLAGS_${_tc_config})
+      string(REGEX REPLACE "(^| )-Werror([= ][^-][^ ]*)?( |$)" " " ${v} "${${v}}")
+    endforeach()
 
     # Save the current LC_ALL, LC_MESSAGES, and LANG environment variables
     # and set them to "C" that way GCC's "search starts here" text is in