aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-02-15 10:59:14 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-02-18 08:48:32 +0000
commit695c4c4749ad89cd42ad631dbf47a82abca25338 (patch)
tree9e879f23576969637356371352c29b87dff6c27c
parentd83c9c1dff9f07e9556b6e649b8017f96e2848dc (diff)
Qt provider: Make sure not to invoke qtchooser directly
In some Linux distributions, qmake is a soft link to qtchooser, which only behaves like qmake if invoked via that name. Change-Id: I6705a81f6a4dfdda5fd3f1e16a63318a4b772084 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--share/qbs/module-providers/Qt/setup-qt.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/share/qbs/module-providers/Qt/setup-qt.js b/share/qbs/module-providers/Qt/setup-qt.js
index 030c3286b..236b4dea4 100644
--- a/share/qbs/module-providers/Qt/setup-qt.js
+++ b/share/qbs/module-providers/Qt/setup-qt.js
@@ -59,8 +59,13 @@ function getQmakeFilePaths(qmakeFilePaths, qbs) {
var suffix = exeSuffix(qbs);
var filePaths = [];
for (var i = 0; i < dirs.length; ++i) {
- var candidate = FileInfo.canonicalPath(FileInfo.joinPaths(dirs[i], "qmake" + suffix));
- if (candidate && File.exists(candidate) && !filePaths.contains(candidate)) {
+ var candidate = FileInfo.joinPaths(dirs[i], "qmake" + suffix);
+ var canonicalCandidate = FileInfo.canonicalPath(candidate);
+ if (!canonicalCandidate || !File.exists(canonicalCandidate))
+ continue;
+ if (FileInfo.completeBaseName(canonicalCandidate) !== "qtchooser")
+ candidate = canonicalCandidate;
+ if (!filePaths.contains(candidate)) {
console.info("Found Qt at '" + toNative(candidate) + "'.");
filePaths.push(candidate);
}