From bb027e10a80a0c43aee74161842a726aef66fcd1 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 5 Apr 2018 15:30:06 +0200 Subject: [PATCH] fix llvm libdir handling wrt RPATH, more or less properly we must not add the llvm libdir if it's a system path. this was already done in some places, but not in others. while we're at it, re-shuffle some pre-existing conditionals to make things consistent. Task-number: QTCREATORBUG-20178 Change-Id: Ib7e5a81705494e4cf2f83a4782ecd0832b91e511 Reviewed-by: Marco Bubke Reviewed-by: Oswald Buddenhagen --- src/tools/clangbackend/clangbackend.pro | 4 ++-- src/tools/clangpchmanagerbackend/clangpchmanagerbackend.pro | 4 ++-- src/tools/clangrefactoringbackend/clangrefactoringbackend.pro | 4 ++-- tests/unit/unittest/clang_dependency.pri | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/tools/clangbackend/clangbackend.pro b/src/tools/clangbackend/clangbackend.pro index 3b7c5de518c..c1c72036ea7 100644 --- a/src/tools/clangbackend/clangbackend.pro +++ b/src/tools/clangbackend/clangbackend.pro @@ -19,7 +19,7 @@ SOURCES += clangbackendmain.cpp HEADERS += ../qtcreatorcrashhandler/crashhandlersetup.h SOURCES += ../qtcreatorcrashhandler/crashhandlersetup.cpp -unix { +unix:!disable_external_rpath:!contains(QMAKE_DEFAULT_LIBDIRS, $${LLVM_LIBDIR}) { !osx: QMAKE_LFLAGS += -Wl,-z,origin - !contains(QMAKE_DEFAULT_LIBDIRS, $${LLVM_LIBDIR}):!disable_external_rpath: QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR}) + QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR}) } diff --git a/src/tools/clangpchmanagerbackend/clangpchmanagerbackend.pro b/src/tools/clangpchmanagerbackend/clangpchmanagerbackend.pro index b54db0be04a..efdd94377b0 100644 --- a/src/tools/clangpchmanagerbackend/clangpchmanagerbackend.pro +++ b/src/tools/clangpchmanagerbackend/clangpchmanagerbackend.pro @@ -28,9 +28,9 @@ SOURCES += \ ../clangrefactoringbackend/source/refactoringcompilationdatabase.cpp -unix { +unix:!disable_external_rpath:!contains(QMAKE_DEFAULT_LIBDIRS, $${LLVM_LIBDIR}) { !macx: QMAKE_LFLAGS += -Wl,-z,origin - !disable_external_rpath: QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR}) + QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR}) } DEFINES += CLANG_COMPILER_PATH=\"R\\\"xxx($${LLVM_BINDIR}/clang)xxx\\\"\" diff --git a/src/tools/clangrefactoringbackend/clangrefactoringbackend.pro b/src/tools/clangrefactoringbackend/clangrefactoringbackend.pro index 3b94d003c06..6e7c8262a92 100644 --- a/src/tools/clangrefactoringbackend/clangrefactoringbackend.pro +++ b/src/tools/clangrefactoringbackend/clangrefactoringbackend.pro @@ -23,7 +23,7 @@ QMAKE_CXXFLAGS += $$LLVM_CXXFLAGS SOURCES += \ clangrefactoringbackendmain.cpp -unix { +unix:!disable_external_rpath:!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR) { !osx: QMAKE_LFLAGS += -Wl,-z,origin - !disable_external_rpath: QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR}) + QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR}) } diff --git a/tests/unit/unittest/clang_dependency.pri b/tests/unit/unittest/clang_dependency.pri index 9c2a3c57a3c..e0c3b1a9483 100644 --- a/tests/unit/unittest/clang_dependency.pri +++ b/tests/unit/unittest/clang_dependency.pri @@ -17,7 +17,7 @@ include(../../../src/shared/clang/clang_installation.pri) } LIBS += $$LIBTOOLING_LIBS $$LIBCLANG_LIBS - QMAKE_RPATHDIR += $$LLVM_LIBDIR + !contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): QMAKE_RPATHDIR += $$LLVM_LIBDIR LLVM_CXXFLAGS ~= s,-g\d?, QMAKE_CXXFLAGS += $$LLVM_CXXFLAGS