centralize MAKEFILE writeout better
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>
Tue, 4 Dec 2012 20:17:24 +0000 (21:17 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 5 Dec 2012 16:29:46 +0000 (17:29 +0100)
nmake depends on a variable being assigned before it is referenced, so
just write it out to every Makefile as the very first thing.
this is nicer than the previous hack anyway.

Change-Id: I50f409919352f560f7ef6c848a2f7c51d1878148
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
qmake/generators/makefile.cpp

index 22772f8..0456d6b 100644 (file)
@@ -2192,11 +2192,6 @@ MakefileGenerator::writeStubMakefile(QTextStream &t)
 bool
 MakefileGenerator::writeMakefile(QTextStream &t)
 {
-    QString ofile = Option::fixPathToTargetOS(Option::output.fileName());
-    if (ofile.lastIndexOf(Option::dir_sep) != -1)
-        ofile.remove(0, ofile.lastIndexOf(Option::dir_sep) +1);
-    t << "MAKEFILE      = " << ofile << endl << endl;
-
     t << "####### Compile" << endl << endl;
     writeObj(t, "SOURCES");
     writeObj(t, "GENERATED_SOURCES");
@@ -2257,6 +2252,10 @@ MakefileGenerator::writeHeader(QTextStream &t)
         t << "# Command: " << build_args().replace("$(QMAKE)", var("QMAKE_QMAKE")) << endl;
     t << "#############################################################################" << endl;
     t << endl;
+    QString ofile = Option::fixPathToTargetOS(Option::output.fileName());
+    if (ofile.lastIndexOf(Option::dir_sep) != -1)
+        ofile.remove(0, ofile.lastIndexOf(Option::dir_sep) +1);
+    t << "MAKEFILE      = " << ofile << endl << endl;
 }
 
 QList<MakefileGenerator::SubTarget*>
@@ -2415,10 +2414,6 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
         t << "include " << (*qeui_it) << endl;
 
     if (!(flags & SubTargetSkipDefaultVariables)) {
-        QString ofile = Option::fixPathToTargetOS(Option::output.fileName());
-        if(ofile.lastIndexOf(Option::dir_sep) != -1)
-            ofile.remove(0, ofile.lastIndexOf(Option::dir_sep) +1);
-        t << "MAKEFILE      = " << ofile << endl;
         /* Calling Option::fixPathToTargetOS() is necessary for MinGW/MSYS, which requires
          * back-slashes to be turned into slashes. */
         t << "QMAKE         = " << var("QMAKE_QMAKE") << endl;