qmake/generators/symbian/initprojectdeploy_symbian.cpp
changeset 1 ae9c8dab0e3e
parent 0 1918ee327afb
child 2 56cd8111b7f7
--- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp	Mon Jan 11 14:00:40 2010 +0000
+++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp	Fri Jan 22 10:32:13 2010 +0200
@@ -293,18 +293,32 @@
                     devicePath = epocRoot() + "epoc32\\winscw\\c" + devicePath;
                 }
             } else {
-                // Drive letter needed if targetpath contains one and it is not already in
+                //The logic of the calling the initProjectDeploySymbian function depends only 
+                //from devicePathHasDriveLetter in pro files.
                 //:QTP:QTPROD-92 Deployment of plugins requires WINSCW build before ARM build
-                if (targetPathHasDriveLetter && !devicePathHasDriveLetter) {
-                   //temporary fix for Raptor building for plugins
-                   if (devicePath.indexOf("plugins", Qt::CaseInsensitive) != -1) {
-                    devicePath = deploymentDrive + "\\epoc32\\data\\z" + devicePath;
-				   } else {
-                    devicePath = deploymentDrive + devicePath;
-				   }
+                if (!devicePathHasDriveLetter) {
+                    if (targetPathHasDriveLetter) {
+                        // Drive letter needed if targetpath contains one and it is not already in
+                        if (devicePath.indexOf("plugins", Qt::CaseInsensitive) != -1 && !platform.compare("armv5") ) {
+                         //For plugin deployment under ARM no needed drive letter
+                         devicePath = epocRoot() + "epoc32\\data\\z" + devicePath;
+                         } else {
+                         devicePath = deploymentDrive + devicePath;
+                       }
+                    } else {
+                        // Only deployment for ARM need full path for the deployment
+                        if (devicePath.indexOf("plugins", Qt::CaseInsensitive) != -1 && !platform.compare("armv5") ) {
+                         devicePath = epocRoot() + "epoc32\\data\\z" + devicePath;
+				       } 
+                    }
+
                 } else {
-                    devicePath = epocRoot() + "epoc32\\data\\z" + devicePath;
-				   }
+                    //it is necessary to delete drive letter for ARM deployment
+                    if (!platform.compare("armv5")) {
+                        devicePath.remove(0,2);
+                        devicePath = epocRoot() + "epoc32\\data\\z" + devicePath;
+                    }
+                }
             }
         }