fix -spec/-xspec argument re-assembly
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Tue, 26 Jun 2012 13:29:35 +0000 (15:29 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 26 Jun 2012 17:29:23 +0000 (19:29 +0200)
the specs in Option are now only fixifiable absolute paths if an actual
path was passed on the command line - otherwise these are just names,
and we should pass them on verbatim.

Change-Id: I5b3535dadf2d6b2b3116331e6636f6e363a5361f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
qmake/generators/makefile.cpp
qmake/generators/makefile.h

index 83354b9..0e7bc99 100644 (file)
@@ -2160,6 +2160,13 @@ MakefileGenerator::writeMakefile(QTextStream &t)
     return true;
 }
 
+QString MakefileGenerator::fixifySpecdir(const QString &spec, const QString &outdir)
+{
+    if (QFileInfo(spec).isAbsolute())
+        return fileFixify(spec, outdir);
+    return spec;
+}
+
 QString MakefileGenerator::buildArgs(const QString &outdir)
 {
     QString ret;
@@ -2186,9 +2193,9 @@ QString MakefileGenerator::buildArgs(const QString &outdir)
     if(!Option::mkfile::do_dep_heuristics)
         ret += " -nodependheuristics";
     if(!Option::mkfile::qmakespec_commandline.isEmpty())
-        ret += " -spec " + specdir(outdir, 1);
+        ret += " -spec " + fixifySpecdir(Option::mkfile::qmakespec, outdir);
     if (!Option::mkfile::xqmakespec_commandline.isEmpty())
-        ret += " -xspec " + specdir(outdir, 0);
+        ret += " -xspec " + fixifySpecdir(Option::mkfile::xqmakespec, outdir);
     if (Option::target_mode_overridden) {
         if (Option::target_mode == Option::TARG_MACX_MODE)
             ret += " -macx";
index 33602dc..e0863fb 100644 (file)
@@ -192,6 +192,7 @@ protected:
     //subclasses can use these to query information about how the generator was "run"
     QString buildArgs(const QString &outdir=QString());
     QString specdir(const QString &outdir = QString(), int host_build = -1);
+    QString fixifySpecdir(const QString &spec, const QString &outdir);
 
     virtual QStringList &findDependencies(const QString &file);
     virtual bool doDepends() const { return Option::mkfile::do_deps; }