diff --git a/src/plugins/clangformat/clangformat.pro b/src/plugins/clangformat/clangformat.pro index e1ccdb98dc1..4d751db2ba4 100644 --- a/src/plugins/clangformat/clangformat.pro +++ b/src/plugins/clangformat/clangformat.pro @@ -6,11 +6,6 @@ include(../../shared/clang/clang_defines.pri) requires(!isEmpty(CLANGFORMAT_LIBS)) -win32 { - LLVM_BUILDMODE = $$system($$llvm_config --build-mode, lines) - CONFIG(debug, debug|release):requires(equals(LLVM_BUILDMODE, "Debug")) -} - LIBS += $$CLANGFORMAT_LIBS INCLUDEPATH += $$LLVM_INCLUDEPATH diff --git a/src/plugins/clangrefactoring/clangrefactoring.pro b/src/plugins/clangrefactoring/clangrefactoring.pro index b5dc2a9956e..d23e9a9a442 100644 --- a/src/plugins/clangrefactoring/clangrefactoring.pro +++ b/src/plugins/clangrefactoring/clangrefactoring.pro @@ -6,11 +6,6 @@ include(../../shared/clang/clang_defines.pri) requires(!isEmpty(LIBTOOLING_LIBS)) -win32 { - LLVM_BUILDMODE = $$system($$llvm_config --build-mode, lines) - CONFIG(debug, debug|release):requires(equals(LLVM_BUILDMODE, "Debug")) -} - HEADERS += \ clangrefactoringplugin.h \ baseclangquerytexteditorwidget.h \ diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 980ad4bff68..df3ce19db20 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -195,14 +195,24 @@ isEmpty(LLVM_VERSION) { LLVM_STATIC_LIBS = $$split(LLVM_STATIC_LIBS_STRING, " ") - CLANGFORMAT_MAIN_HEADER = $$LLVM_INCLUDEPATH/clang/Format/Format.h - exists($$CLANGFORMAT_MAIN_HEADER) { - CLANGFORMAT_LIBS=-lclangFormat -lclangToolingInclusions -lclangToolingCore -lclangRewrite -lclangLex -lclangBasic - ALL_CLANG_LIBS=-lclangFormat -lclangToolingInclusions -lclangTooling -lclangToolingCore \ - -lclangRewrite -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \ - -lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \ - -lclangASTMatchers -lclangAST -lclangLex -lclangBasic - win32:CLANGFORMAT_LIBS += -lversion + win32 { + LLVM_BUILDMODE = $$system($$llvm_config --build-mode, lines) + CONFIG(debug, debug|release):!equals(LLVM_BUILDMODE, "Debug") { + message("Mismatching build config (Debug vs Release) setting QTC_CLANG_BUILDMODE_MISMATCH") + QTC_CLANG_BUILDMODE_MISMATCH=1 + } + } + + isEmpty(QTC_CLANG_BUILDMODE_MISMATCH)|!equals(QTC_CLANG_BUILDMODE_MISMATCH, 1) { + CLANGFORMAT_MAIN_HEADER = $$LLVM_INCLUDEPATH/clang/Format/Format.h + exists($$CLANGFORMAT_MAIN_HEADER) { + CLANGFORMAT_LIBS=-lclangFormat -lclangToolingInclusions -lclangToolingCore -lclangRewrite -lclangLex -lclangBasic + ALL_CLANG_LIBS=-lclangFormat -lclangToolingInclusions -lclangTooling -lclangToolingCore \ + -lclangRewrite -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \ + -lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \ + -lclangASTMatchers -lclangAST -lclangLex -lclangBasic + win32:CLANGFORMAT_LIBS += -lversion + } } win32:ALL_CLANG_LIBS += -lversion @@ -225,10 +235,12 @@ isEmpty(LLVM_VERSION) { !contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBCLANG_LIBS = -L$${LLVM_LIBDIR} LIBCLANG_LIBS += $${CLANG_LIB} - QTC_DISABLE_CLANG_REFACTORING=$$(QTC_DISABLE_CLANG_REFACTORING) - isEmpty(QTC_DISABLE_CLANG_REFACTORING) { - !contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBTOOLING_LIBS = -L$${LLVM_LIBDIR} - LIBTOOLING_LIBS += $$CLANGTOOLING_LIBS $$LLVM_STATIC_LIBS + isEmpty(QTC_CLANG_BUILDMODE_MISMATCH)|!equals(QTC_CLANG_BUILDMODE_MISMATCH, 1) { + QTC_DISABLE_CLANG_REFACTORING=$$(QTC_DISABLE_CLANG_REFACTORING) + isEmpty(QTC_DISABLE_CLANG_REFACTORING) { + !contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBTOOLING_LIBS = -L$${LLVM_LIBDIR} + LIBTOOLING_LIBS += $$CLANGTOOLING_LIBS $$LLVM_STATIC_LIBS + } } !isEmpty(CLANGFORMAT_LIBS) { diff --git a/tests/unit/unittest/unittest.pro b/tests/unit/unittest/unittest.pro index 6565c47a092..c64d22925b6 100644 --- a/tests/unit/unittest/unittest.pro +++ b/tests/unit/unittest/unittest.pro @@ -9,6 +9,8 @@ include(clang_dependency.pri) include(creator_dependency.pri) include(benchmark_dependency.pri) +requires(isEmpty(QTC_CLANG_BUILDMODE_MISMATCH)) + OBJECTS_DIR = $$OUT_PWD/obj # workaround for qmake bug in object_parallel_to_source !msvc:force_debug_info:QMAKE_CXXFLAGS += -fno-omit-frame-pointer