Clang: Properly set up warnings for clang-based libraries

Add warning flags to QMAKE_CXXFLAGS_WARN_ON to have them
after default warnings.

Change-Id: Ic94fe36175d3198191251d5b475f8f8ed000bef7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-11-12 09:53:44 +01:00
parent ab4f6ad9ce
commit 9eb66a806f
6 changed files with 22 additions and 3 deletions

View File

@@ -13,7 +13,8 @@ win32 {
LIBS += $$CLANGFORMAT_LIBS
INCLUDEPATH += $$LLVM_INCLUDEPATH
QMAKE_CXXFLAGS += $$LLVM_CXXFLAGS
QMAKE_CXXFLAGS_WARN_ON *= $$LLVM_CXXFLAGS_WARNINGS
QMAKE_CXXFLAGS *= $$LLVM_CXXFLAGS
unix:!macos:QMAKE_LFLAGS += -Wl,--exclude-libs,ALL
SOURCES = \

View File

@@ -17,6 +17,7 @@ QtcPlugin {
condition: libclang.present
&& (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches)
cpp.cxxFlags: base.concat(libclang.llvmToolingCxxFlags)
cpp.defines: base.concat("CLANGPCHMANAGER_LIB")
cpp.includePaths: base.concat(libclang.llvmIncludeDir)
cpp.libraryPaths: base.concat(libclang.llvmLibDir)

View File

@@ -111,6 +111,17 @@ defineReplace(splitFlags) {
return($$result)
}
defineReplace(extractWarnings) {
flags = $$1
result =
for (flag, flags) {
contains(flag, ^[-/][wW].*$) {
result += $$flag
}
}
return($$result)
}
CLANGTOOLING_LIBS=-lclangTooling -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \
-lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \
-lclangASTMatchers -lclangToolingCore -lclangAST -lclangLex -lclangBasic
@@ -241,6 +252,9 @@ isEmpty(LLVM_VERSION) {
LLVM_CXXFLAGS = $$splitFlags($$LLVM_CXXFLAGS)
LLVM_CXXFLAGS_WARNINGS = $$extractWarnings($$LLVM_CXXFLAGS)
LLVM_CXXFLAGS -= $$LLVM_CXXFLAGS_WARNINGS
LLVM_IS_COMPILED_WITH_RTTI = $$system($$llvm_config --has-rtti, lines)
unix:!disable_external_rpath:!contains(QMAKE_DEFAULT_LIBDIRS, $${LLVM_LIBDIR}) {

View File

@@ -18,7 +18,8 @@ QT -= gui
LIBS += $$LIBTOOLING_LIBS
INCLUDEPATH += $$LLVM_INCLUDEPATH
QMAKE_CXXFLAGS += $$LLVM_CXXFLAGS
QMAKE_CXXFLAGS_WARN_ON *= $$LLVM_CXXFLAGS_WARNINGS
QMAKE_CXXFLAGS *= $$LLVM_CXXFLAGS
INCLUDEPATH += ../clangrefactoringbackend/source

View File

@@ -19,7 +19,8 @@ LIBS += $$LIBTOOLING_LIBS
INCLUDEPATH += $$LLVM_INCLUDEPATH
INCLUDEPATH += ../clangpchmanagerbackend/source
QMAKE_CXXFLAGS += $$LLVM_CXXFLAGS
QMAKE_CXXFLAGS_WARN_ON *= $$LLVM_CXXFLAGS_WARNINGS
QMAKE_CXXFLAGS *= $$LLVM_CXXFLAGS
SOURCES += \
clangrefactoringbackendmain.cpp

View File

@@ -22,6 +22,7 @@ include(../../../src/shared/clang/clang_defines.pri)
!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): QMAKE_RPATHDIR += $$LLVM_LIBDIR
LLVM_CXXFLAGS ~= s,-g\d?,
QMAKE_CXXFLAGS_WARN_ON *= $$LLVM_CXXFLAGS_WARNINGS
QMAKE_CXXFLAGS *= $$LLVM_CXXFLAGS
DEFINES += CLANG_COMPILER_PATH=\"R\\\"xxx($$LLVM_BINDIR/clang)xxx\\\"\"