summaryrefslogtreecommitdiffstats
path: root/qmake/project.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-08-06 20:44:10 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-07 16:40:07 +0200
commit68cbeb59d9aae4fcf57193093a29feb4423e2b01 (patch)
tree85f8ab0821e5ff05942da2a6667e68911e322394 /qmake/project.cpp
parent6e4ed714f120b3064f52af7e36052c89f484a4ad (diff)
make $$relative_path() minimize already relative paths
QDir::relativeFilePath() doesn't do anything if the path is already relative, so make it absolute first to force a re-calculation. the cleanPath() is gone, as relativeFilePath() already does that. Change-Id: I8f4d0d839db3fe99a608f70916b4b5bd52c56535 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Diffstat (limited to 'qmake/project.cpp')
-rw-r--r--qmake/project.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 3379f452a3..7a80cc659e 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -2727,12 +2727,13 @@ QMakeProject::doProjectExpand(QString func, QList<QStringList> args_list,
.absoluteFilePath(args.at(0)));
break;
case E_RELATIVE_PATH:
- if (args.count() > 2)
+ if (args.count() > 2) {
fprintf(stderr, "%s:%d relative_path(path[, base]) requires one or two arguments.\n",
parser.file.toLatin1().constData(), parser.line_no);
- else
- ret += QDir::cleanPath(QDir(args.count() > 1 ? args.at(1) : QString())
- .relativeFilePath(args.at(0)));
+ } else {
+ QDir baseDir(args.count() > 1 ? args.at(1) : QString());
+ ret += baseDir.relativeFilePath(baseDir.absoluteFilePath(args.at(0)));
+ }
break;
case E_CLEAN_PATH:
if (args.count() != 1)