forked from qt-creator/qt-creator
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:
@@ -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 = \
|
||||
|
@@ -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)
|
||||
|
@@ -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}) {
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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\\\"\"
|
||||
|
Reference in New Issue
Block a user