summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaakko Helanti <ext-jaakko.helanti@nokia.com>2012-01-16 12:48:39 +0200
committerPasi Pentikäinen <ext-pasi.a.pentikainen@nokia.com>2012-01-19 13:52:39 +0100
commitd2c666d3072e0b8455b6a77691e892a4201627c5 (patch)
tree5e0965979b5cab557b8deeb4385ffb036618c8e6
parentf8984629da64f9391a78c910135ab2205ddcf747 (diff)
downloadqt4-tools-d2c666d3072e0b8455b6a77691e892a4201627c5.tar.gz
Symbian: qmake: Fix emulator deployment destinations
This fix affects how qmake generates "bld.inf" file. Earlier, all emulator deployments went to epoc32/winscw/c, which is the C-drive of the emulator. However, emulator implementation expects often to find deployments from epoc32/release/winscw/udeb/z, which is the ROM drive of the emulator. For this reason many things, including QML deployments, did not work in the emulator. Now the fixed deployment is as follows: - If pro-file deployment has no path value, it goes to emulator ROM drive. - If pro-file deployment has path variable with no drive letter, it goes to emulator ROM drive. - If pro-file deployment has path variable with drive letter, it goes to the given emulator drive. - If pro-file deployment has path variable with '!' as drive letter, it goes to emulator C drive. When making emulator ROM-drive deployment, two deployments are made, one to udeb and one to urel emulator. Task-number: ou1cimx1#954237 Change-Id: I62d3f5b479ee0c0c547e824bb45ae8c0a6484d87 Reviewed-by: Jaakko Helanti <ext-jaakko.helanti@nokia.com> Reviewed-by: Pasi Pentikäinen <ext-pasi.a.pentikainen@nokia.com> (cherry picked from commit bb5cba5dcc3f3453ccbfea2667adc3a12c4ba92b)
-rw-r--r--qmake/generators/symbian/initprojectdeploy_symbian.cpp19
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp15
2 files changed, 27 insertions, 7 deletions
diff --git a/qmake/generators/symbian/initprojectdeploy_symbian.cpp b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
index 6b7a061a6a..dcb95de831 100644
--- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp
+++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
@@ -223,12 +223,21 @@ void initProjectDeploySymbian(QMakeProject* project,
} else {
if (0 == platform.compare(QLatin1String(EMULATOR_DEPLOYMENT_PLATFORM))) {
if (devicePathHasDriveLetter) {
- if (devicePath.startsWith("!"))
- devicePath = qt_epocRoot() + "epoc32/winscw/c" + devicePath.remove(0, 2);
- else
- devicePath = qt_epocRoot() + "epoc32/winscw/" + devicePath.remove(1, 1);
+ if (devicePath.startsWith("z", Qt::CaseInsensitive)) {
+ devicePath = qt_epocRoot() + "epoc32/release/winscw/" + build + "/z" + devicePath.remove(0, 2);
+ } else {
+ // Do not create deployment for urel target. Otherwise we would be generating two
+ // identical deployments for paths with drive letter other than Z.
+ if (0 == build.compare(QLatin1String("urel"), Qt::CaseInsensitive))
+ continue;
+ if (devicePath.startsWith("!"))
+ devicePath = qt_epocRoot() + "epoc32/winscw/c" + devicePath.remove(0, 2);
+ else
+ devicePath = qt_epocRoot() + "epoc32/winscw/" + devicePath.remove(1, 1);
+ }
} else {
- devicePath = qt_epocRoot() + "epoc32/winscw/c" + devicePath;
+ // If no device path drive letter, deploy to "emulator ROM drive"
+ devicePath = qt_epocRoot() + "epoc32/release/winscw/" + build + "/z" + devicePath;
}
} else {
if (devicePathHasDriveLetter
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index 5077be5009..20b758efec 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -687,13 +687,24 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
t << endl;
// Write deployment rules
- QString remoteTestPath = qt_epocRoot() + QLatin1String("epoc32/winscw/c/private/") + privateDirUid;
+ QString remoteTestPath = qt_epocRoot()
+ + QLatin1String("epoc32/release/winscw/udeb/z/private/") + privateDirUid;
DeploymentList depList;
//write emulator deployment
+ // There are deployment targets for both uded and urel emulators.
t << "#if defined(WINSCW)" << endl;
initProjectDeploySymbian(project, depList, remoteTestPath, false, true,
- QLatin1String(EMULATOR_DEPLOYMENT_PLATFORM), QString(), generatedDirs, generatedFiles);
+ QLatin1String(EMULATOR_DEPLOYMENT_PLATFORM), QLatin1String(BUILD_DEBUG),
+ generatedDirs, generatedFiles);
+ writeSbsDeploymentList(depList, t);
+
+ depList.clear();
+ remoteTestPath = qt_epocRoot()
+ + QLatin1String("epoc32/release/winscw/urel/z/private/") + privateDirUid;
+ initProjectDeploySymbian(project, depList, remoteTestPath, false, true,
+ QLatin1String(EMULATOR_DEPLOYMENT_PLATFORM), QLatin1String(BUILD_RELEASE),
+ generatedDirs, generatedFiles);
writeSbsDeploymentList(depList, t);
t << "#endif" << endl;