summaryrefslogtreecommitdiffstats
path: root/tools/qtestlib/wince/cetest/deployment.cpp
diff options
context:
space:
mode:
authorRohan McGovern <rohan.mcgovern@nokia.com>2009-07-02 12:58:51 +1000
committerRohan McGovern <rohan.mcgovern@nokia.com>2009-07-02 17:30:14 +1000
commit058c4f1cfd0536779ec99f3d89bdd90bf52ae20e (patch)
tree98bd4a3d22af418f8cf977db8ced251d6233d7d4 /tools/qtestlib/wince/cetest/deployment.cpp
parentf126b8cc5733d2cd37dd2aad9119e482b0d4a0e6 (diff)
Let cetest deploy libraries other than for Qt to make it usable for
running unit tests for projects outside of Qt. Let cetest look in the paths given with `-L' in LIBS, and to deploy libraries whose names don't start with `Qt'. This also fixes deployment of Qt autotests which link against phonon (the only Qt library whose name doesn't start with `Qt'). Reviewed-by: mauricek
Diffstat (limited to 'tools/qtestlib/wince/cetest/deployment.cpp')
-rw-r--r--tools/qtestlib/wince/cetest/deployment.cpp34
1 files changed, 29 insertions, 5 deletions
diff --git a/tools/qtestlib/wince/cetest/deployment.cpp b/tools/qtestlib/wince/cetest/deployment.cpp
index fec273544f..68f0197f0a 100644
--- a/tools/qtestlib/wince/cetest/deployment.cpp
+++ b/tools/qtestlib/wince/cetest/deployment.cpp
@@ -125,13 +125,37 @@ void DeploymentHandler::initQtDeploy(QMakeProject *project, DeploymentList &depl
if (!project->values("QMAKE_QT_DLL").isEmpty() && !project->values("QMAKE_LIBDIR").isEmpty()) {
QStringList libs = project->values("LIBS");
QStringList qtLibs;
+ QStringList libPaths;
foreach (QString item, libs) {
- if (item.startsWith("-lQt")) {
- qtLibs += project->values("QMAKE_LIBDIR").at(0) + QDir::separator() + item.mid(2) + QLatin1String("4.dll");
+
+ if (item.startsWith("-L")) {
+ // -L -> a directory containing DLLs
+ libPaths << item.mid(2);
+ continue;
+ }
+
+ QStringList libCandidates;
+
+ if (item.startsWith("-l")) {
+ // -l -> a library located within one of the standard library paths
+ QString lib = item.mid(2);
+
+ // Check if it's a Qt library first, then check in all paths given with -L.
+ // Note Qt libraries get a `4' appended to them, others don't.
+ libCandidates << project->values("QMAKE_LIBDIR").at(0) + QDir::separator() + lib + QLatin1String("4.dll");
+ foreach (QString const& libPath, libPaths) {
+ libCandidates << libPath + QDir::separator() + lib + QLatin1String(".dll");
+ }
} else {
- QFileInfo info(item);
- if (info.exists() && info.isAbsolute() && info.fileName().startsWith(QLatin1String("Qt")))
- qtLibs += info.dir().absoluteFilePath(info.fileName().replace(QLatin1String(".lib"), QLatin1String(".dll")));
+ libCandidates << item.replace(".lib",".dll");
+ }
+
+ foreach (QString const& file, libCandidates) {
+ QFileInfo info(file);
+ if (info.exists()) {
+ qtLibs += info.dir().absoluteFilePath(info.fileName());
+ break;
+ }
}
}
for (QStringList::ConstIterator it = qtLibs.constBegin(); it != qtLibs.constEnd(); ++it) {