diff options
author | Rafael Roquetto <rafael.roquetto@kdab.com> | 2014-12-04 11:45:06 -0200 |
---|---|---|
committer | Rafael Roquetto <rafael.roquetto@kdab.com> | 2014-12-08 13:57:11 +0100 |
commit | b36c39927260638a318c4f94bad4011c7ece2d9b (patch) | |
tree | 626acf1f11ec417a7519c989d910b67bf20977a5 | |
parent | 6a30fa9f53a42b3d2fc3029e1a7be137704b161b (diff) |
QNX: Deploy only *.so.? libs
While on Unix systems, libQt5XYZ.so* are symlinks to libQt5XYZ.so.1.2.3, on
Windows hosts these files are copies instead of actual symlinks. Therefore,
when deploying from a Windows host, all the duplicates get uploaded to the
target, effectively taking a lot of unnecessary space.
Because Qt QNX apps link only agains *.so.? files, we deploy only those when
on Windows hosts.
Change-Id: I8f9f3f3a30d227b907f94f30ca47636dcb345eec
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Tobias Nätterlund <tobias.naetterlund@kdab.com>
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp | 16 | ||||
-rw-r--r-- | src/plugins/qnx/qnxdeployqtlibrariesdialog.h | 3 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp index f61c360f8c..6a02c01fe4 100644 --- a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp +++ b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp @@ -245,7 +245,16 @@ QList<ProjectExplorer::DeployableFile> QnxDeployQtLibrariesDialog::gatherFiles() QTC_ASSERT(qtVersion, return result); - result.append(gatherFiles(qtVersion->versionInfo().value(QLatin1String("QT_INSTALL_LIBS")))); + if (Utils::HostOsInfo::isWindowsHost()) { + result.append(gatherFiles(qtVersion->versionInfo().value(QLatin1String("QT_INSTALL_LIBS")), + QString(), QStringList() << QLatin1String("*.so.?"))); + result.append(gatherFiles(qtVersion->versionInfo().value(QLatin1String("QT_INSTALL_LIBS")) + + QLatin1String("/fonts"))); + } else { + result.append(gatherFiles( + qtVersion->versionInfo().value(QLatin1String("QT_INSTALL_LIBS")))); + } + result.append(gatherFiles(qtVersion->versionInfo().value(QLatin1String("QT_INSTALL_PLUGINS")))); result.append(gatherFiles(qtVersion->versionInfo().value(QLatin1String("QT_INSTALL_IMPORTS")))); result.append(gatherFiles(qtVersion->versionInfo().value(QLatin1String("QT_INSTALL_QML")))); @@ -254,14 +263,15 @@ QList<ProjectExplorer::DeployableFile> QnxDeployQtLibrariesDialog::gatherFiles() } QList<ProjectExplorer::DeployableFile> QnxDeployQtLibrariesDialog::gatherFiles( - const QString &dirPath, const QString &baseDirPath) + const QString &dirPath, const QString &baseDirPath, const QStringList &nameFilters) { QList<ProjectExplorer::DeployableFile> result; if (dirPath.isEmpty()) return result; QDir dir(dirPath); - QFileInfoList list = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); + QFileInfoList list = dir.entryInfoList(nameFilters, + QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); for (int i = 0; i < list.size(); ++i) { QFileInfo fileInfo = list.at(i); diff --git a/src/plugins/qnx/qnxdeployqtlibrariesdialog.h b/src/plugins/qnx/qnxdeployqtlibrariesdialog.h index 2ba6f53357..81091edf59 100644 --- a/src/plugins/qnx/qnxdeployqtlibrariesdialog.h +++ b/src/plugins/qnx/qnxdeployqtlibrariesdialog.h @@ -91,7 +91,8 @@ private slots: private: QList<ProjectExplorer::DeployableFile> gatherFiles(); QList<ProjectExplorer::DeployableFile> gatherFiles(const QString &dirPath, - const QString &baseDir = QString()); + const QString &baseDir = QString(), + const QStringList &nameFilters = QStringList()); QString fullRemoteDirectory() const; void checkRemoteDirectoryExistance(); |