summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-02-24 12:11:51 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-28 09:13:47 +0100
commit08fe1f6871169bf36ee58025da40824547c21b5f (patch)
treed927cd7bb8b1c2c2262a7fcbd0125dd3216be89e
parent059200a44ba7177d0c9ec6bb5e6ee0b7e0c3f017 (diff)
resolve relative spec paths already on the command line
this is way more predictable than resolving it later. Change-Id: I0ce27977b795bde9235e1d51d6f2d0d917f2398c Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
-rw-r--r--qmake/option.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/qmake/option.cpp b/qmake/option.cpp
index 306e6b5286..0c649fdd77 100644
--- a/qmake/option.cpp
+++ b/qmake/option.cpp
@@ -147,6 +147,14 @@ static QString detectProjectFile(const QString &path)
return ret;
}
+static QString cleanSpec(const QString &spec)
+{
+ QString ret = QDir::cleanPath(spec);
+ if (ret.contains('/'))
+ ret = QDir::cleanPath(QFileInfo(ret).absoluteFilePath());
+ return ret;
+}
+
QString project_builtin_regx();
bool usage(const char *a0)
{
@@ -315,7 +323,7 @@ Option::parseCommandLine(int argc, char **argv, int skip)
} else if(opt == "cache") {
Option::mkfile::cachefile = argv[++x];
} else if(opt == "platform" || opt == "spec") {
- Option::mkfile::qmakespec = argv[++x];
+ Option::mkfile::qmakespec = cleanSpec(argv[++x]);
Option::mkfile::qmakespec_commandline = argv[x];
} else {
fprintf(stderr, "***Unknown option -%s\n", opt.toLatin1().constData());