diff options
author | Jaakko Helanti <ext-jaakko.helanti@nokia.com> | 2012-01-16 12:48:39 +0200 |
---|---|---|
committer | Pasi Pentikäinen <ext-pasi.a.pentikainen@nokia.com> | 2012-01-19 13:52:39 +0100 |
commit | d2c666d3072e0b8455b6a77691e892a4201627c5 (patch) | |
tree | 5e0965979b5cab557b8deeb4385ffb036618c8e6 | |
parent | f8984629da64f9391a78c910135ab2205ddcf747 (diff) | |
download | qt4-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.cpp | 19 | ||||
-rw-r--r-- | qmake/generators/symbian/symmake_sbsv2.cpp | 15 |
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; |