From 1929c38a9fd6df8257069ba505c88c8a57a5352f Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 8 Jul 2020 11:42:47 +0200 Subject: [PATCH] Clang: Fix handling of paths inside common pri file contains() expects a regular expression as value, so using a bare windows path may be a bad idea. Beside this fix the LLVM_INCLUDEPATH which is reported wrong already by llvm-config. Change-Id: I95aa3e461541099aac6607c4a8db8a38f9b2b0f6 Reviewed-by: Joerg Bornemann --- src/shared/clang/clang_installation.pri | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 6e9d425f216..2ef2cb425cb 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -185,6 +185,8 @@ isEmpty(LLVM_VERSION) { LLVM_BINDIR = $$quote($$system($$llvm_config --bindir, lines)) LLVM_INCLUDEPATH = $$system($$llvm_config --includedir, lines) msvc { + # llvm-config returns mixed path separators for --includedir + LLVM_INCLUDEPATH = $$replace(LLVM_INCLUDEPATH, /, \\) # CLANG-UPGRADE-CHECK: Remove suppression if this warning is resolved. # Suppress unreferenced formal parameter warnings QMAKE_CXXFLAGS += -wd4100 @@ -233,7 +235,7 @@ isEmpty(LLVM_VERSION) { $$llvmWarningOrError("Cannot find Clang shared library in $$LLVM_LIBDIR") } - !contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBCLANG_LIBS = -L$${LLVM_LIBDIR} + !contains(QMAKE_DEFAULT_LIBDIRS, $$re_escape($$LLVM_LIBDIR)): LIBCLANG_LIBS = -L$${LLVM_LIBDIR} LIBCLANG_LIBS += $${CLANG_LIB} isEmpty(QTC_CLANG_BUILDMODE_MISMATCH)|!equals(QTC_CLANG_BUILDMODE_MISMATCH, 1) { @@ -249,7 +251,7 @@ isEmpty(LLVM_VERSION) { } ALL_CLANG_LIBS = -L$${LLVM_LIBDIR} $$ALL_CLANG_LIBS $$CLANG_LIB $$LLVM_STATIC_LIBS - contains(QMAKE_DEFAULT_INCDIRS, $$LLVM_INCLUDEPATH): LLVM_INCLUDEPATH = + contains(QMAKE_DEFAULT_INCDIRS, $$re_escape($$LLVM_INCLUDEPATH)): LLVM_INCLUDEPATH = # Remove unwanted flags. It is a workaround for linking. # It is not intended for cross compiler linking.