qmake/generators/symbian/initprojectdeploy_symbian.cpp
changeset 3 41300fa6a67c
parent 2 56cd8111b7f7
child 4 3b1da2848fc7
child 7 f7bc934e204c
child 18 2f34d5167611
--- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp	Tue Feb 02 00:43:10 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;
+                    }
+                }
             }
         }