diff options
author | Rohan McGovern <rohan.mcgovern@nokia.com> | 2009-07-02 02:58:51 (GMT) |
---|---|---|
committer | Rohan McGovern <rohan.mcgovern@nokia.com> | 2009-07-02 07:30:14 (GMT) |
commit | 058c4f1cfd0536779ec99f3d89bdd90bf52ae20e (patch) | |
tree | 98bd4a3d22af418f8cf977db8ced251d6233d7d4 /tools/qtestlib | |
parent | f126b8cc5733d2cd37dd2aad9119e482b0d4a0e6 (diff) | |
download | Qt-058c4f1cfd0536779ec99f3d89bdd90bf52ae20e.zip Qt-058c4f1cfd0536779ec99f3d89bdd90bf52ae20e.tar.gz Qt-058c4f1cfd0536779ec99f3d89bdd90bf52ae20e.tar.bz2 |
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')
-rw-r--r-- | tools/qtestlib/wince/cetest/deployment.cpp | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/tools/qtestlib/wince/cetest/deployment.cpp b/tools/qtestlib/wince/cetest/deployment.cpp index fec2735..68f0197 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) { |