diff options
-rw-r--r-- | qbs/modules/libclang/functions.js | 18 | ||||
-rw-r--r-- | src/shared/clang/clang_installation.pri | 2 |
2 files changed, 16 insertions, 4 deletions
diff --git a/qbs/modules/libclang/functions.js b/qbs/modules/libclang/functions.js index d586750b21..99577c3146 100644 --- a/qbs/modules/libclang/functions.js +++ b/qbs/modules/libclang/functions.js @@ -161,6 +161,17 @@ function toolingParameters(llvmConfig) cxxFlags: [], }; var allCxxFlags = readListOutput(llvmConfig, ["--cxxflags"]); + var badFlags = [ + "-fno-exceptions", + "/W4", + "-Wcovered-switch-default", + "-Wnon-virtual-dtor", + "-Woverloaded-virtual", + "-fPIC", + "-pedantic", + "-Wstring-conversion", + "-gsplit-dwarf" + ] for (var i = 0; i < allCxxFlags.length; ++i) { var flag = allCxxFlags[i]; if (flag.startsWith("-D") || flag.startsWith("/D")) { @@ -173,10 +184,9 @@ function toolingParameters(llvmConfig) } if (!flag.startsWith("-std") && !flag.startsWith("-O") && !flag.startsWith("/O") && !flag.startsWith("-march") - && !flag.startsWith("/EH") && flag !== "-fno-exceptions" - && flag !== "/W4" && flag !== "-Werror=date-time" - && flag !== "-Wcovered-switch-default" && flag !== "-fPIC" && flag !== "-pedantic" - && flag !== "-Wstring-conversion" && flag !== "-gsplit-dwarf") { + && !flag.startsWith("-Werror=") + && !flag.startsWith("/EH") + && !badFlags.contains(flag)) { params.cxxFlags.push(flag); } } diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 02ead68bce..3f4b4fde7c 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -228,6 +228,8 @@ isEmpty(LLVM_VERSION) { LLVM_CXXFLAGS ~= s,/G\S*, LLVM_CXXFLAGS ~= s,-Werror=\S*, LLVM_CXXFLAGS ~= s,-Wcovered-switch-default, + LLVM_CXXFLAGS ~= s,-Wnon-virtual-dtor, + LLVM_CXXFLAGS ~= s,-Woverloaded-virtual, LLVM_CXXFLAGS ~= s,-fPIC, LLVM_CXXFLAGS ~= s,-pedantic, LLVM_CXXFLAGS ~= s,-Wstring-conversion, |