qmake/generators/win32/winmakefile.cpp
changeset 30 5dc02b23752f
parent 19 fcece45ef507
child 37 758a864f9613
--- a/qmake/generators/win32/winmakefile.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/qmake/generators/win32/winmakefile.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -598,8 +598,7 @@
     writeIncPart(t);
     writeLibsPart(t);
 
-    t << "QMAKE         = " << (project->isEmpty("QMAKE_QMAKE") ? QString("qmake") :
-                              Option::fixPathToTargetOS(var("QMAKE_QMAKE"), false)) << endl;
+    t << "QMAKE         = " << var("QMAKE_QMAKE") << endl;
     t << "IDC           = " << (project->isEmpty("QMAKE_IDC") ? QString("idc") :
                               Option::fixPathToTargetOS(var("QMAKE_IDC"), false)) << endl;
     t << "IDL           = " << (project->isEmpty("QMAKE_IDL") ? QString("midl") :
@@ -771,6 +770,11 @@
     return QString(project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".lib");
 }
 
+QString Win32MakefileGenerator::getPdbTarget()
+{
+    return QString(project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".pdb");
+}
+
 QString Win32MakefileGenerator::defaultInstall(const QString &t)
 {
     if((t != "target" && t != "dlltarget") ||
@@ -811,6 +815,18 @@
                 uninst.append("\n\t");
             uninst.append("-$(DEL_FILE) \"" + dst_targ + "\"");
         }
+        if(project->isActiveConfig("shared") && project->isActiveConfig("debug")) {
+            QString pdb_target = getPdbTarget();
+            pdb_target.remove('"');
+            QString src_targ = (project->isEmpty("DESTDIR") ? QString("$(DESTDIR)") : project->first("DESTDIR")) + pdb_target;
+            QString dst_targ = filePrefixRoot(root, fileFixify(targetdir + pdb_target, FileFixifyAbsolute));
+            if(!ret.isEmpty())
+                ret += "\n\t";
+            ret += QString("-$(INSTALL_FILE)") + " \"" + src_targ + "\" \"" + dst_targ + "\"";
+            if(!uninst.isEmpty())
+                uninst.append("\n\t");
+            uninst.append("-$(DEL_FILE) \"" + dst_targ + "\"");
+        }
     }
 
     if(t == "dlltarget" || project->values(t + ".CONFIG").indexOf("no_dll") == -1) {