From 27aeb30b5d97e8394fd9e4021a5cf321bddb7204 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 30 Apr 2020 18:00:28 +0200 Subject: [PATCH] CMake: Limit warnings_are_errors flags to C++ and Objective-C++ Otherwise when applied to bundled 3rd party library C files, the MinGW build fails when compiling src/3rdparty/md4c/md4c.c. Change-Id: Ia522b10aa69aa15f239d20c65e31c84edbccee6d Reviewed-by: Simon Hausmann --- cmake/QtInternalTargets.cmake | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cmake/QtInternalTargets.cmake b/cmake/QtInternalTargets.cmake index 16db6e4bf0..6940a367ac 100644 --- a/cmake/QtInternalTargets.cmake +++ b/cmake/QtInternalTargets.cmake @@ -58,8 +58,15 @@ function(qt_internal_set_warnings_are_errors_flags target) list(APPEND flags /WX) endif() endif() - set(add_flags "$>>") - set(flags_generator_expression "$<${add_flags}:${flags}>") + set(warnings_are_errors_enabled_genex + "$>>") + + # Apprently qmake only adds -Werror to CXX and OBJCXX files, not C files. We have to do the + # same otherwise MinGW builds break when building 3rdparty\md4c\md4c.c (and probably on other + # platforms too). + set(cxx_only_genex "$,$>") + set(final_condition_genex "$") + set(flags_generator_expression "$<${final_condition_genex}:${flags}>") target_compile_options("${target}" INTERFACE "${flags_generator_expression}") endfunction()