diff options
author | Ahmad Samir <a.samirh78@gmail.com> | 2023-12-21 21:40:40 +0200 |
---|---|---|
committer | Ahmad Samir <a.samirh78@gmail.com> | 2024-03-03 14:02:07 +0200 |
commit | 7cf39bd785e8ba817960d48b120983cafcc539f3 (patch) | |
tree | fcacf3e25829e2fcba93e8bf6699ed2f85678905 /qmake | |
parent | d5eb5d2f8dc25ed06f87042b8bc230bbcffc5da3 (diff) |
Port to QDirListing
Use QDirListing in the Bootstrap build instead of QDirIterator.
Drive-by changes:
- more const variables
- use emplace_back() instead of append() where appropriate
Change-Id: Ie1f0d03856e557c4bfabfff38a87edc7da86d091
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'qmake')
-rw-r--r-- | qmake/generators/win32/msvc_nmake.cpp | 13 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_vcproj.cpp | 16 |
2 files changed, 13 insertions, 16 deletions
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp index 1e21afd1c2..b5df617927 100644 --- a/qmake/generators/win32/msvc_nmake.cpp +++ b/qmake/generators/win32/msvc_nmake.cpp @@ -6,7 +6,7 @@ #include <qregularexpression.h> #include <qdir.h> -#include <qdiriterator.h> +#include <qdirlisting.h> #include <qset.h> #include <time.h> @@ -314,16 +314,15 @@ void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t) const QStringList sourceFilesFilter = sourceFilesForImplicitRulesFilter(); QStringList fixifiedSourceDirs = fileFixify(QList<QString>(source_directories.constBegin(), source_directories.constEnd()), FileFixifyAbsolute); fixifiedSourceDirs.removeDuplicates(); + constexpr auto filters = QDir::Files | QDir::NoDotAndDotDot; for (const QString &sourceDir : std::as_const(fixifiedSourceDirs)) { - QDirIterator dit(sourceDir, sourceFilesFilter, QDir::Files | QDir::NoDotAndDotDot); - while (dit.hasNext()) { - const QFileInfo fi = dit.nextFileInfo(); - QString &duplicate = fileNames[fi.completeBaseName()]; + for (const auto &dirEntry : QDirListing(sourceDir, sourceFilesFilter, filters)) { + QString &duplicate = fileNames[dirEntry.completeBaseName()]; if (duplicate.isNull()) { - duplicate = fi.filePath(); + duplicate = dirEntry.filePath(); } else { warn_msg(WarnLogic, "%s conflicts with %s", qPrintable(duplicate), - qPrintable(fi.filePath())); + qPrintable(dirEntry.filePath())); duplicatesFound = true; } } diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index ac50253a44..2192535867 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -8,7 +8,7 @@ #include <ioutils.h> #include <qdir.h> -#include <qdiriterator.h> +#include <qdirlisting.h> #include <qcryptographichash.h> #include <qhash.h> #include <quuid.h> @@ -1293,18 +1293,16 @@ void VcprojGenerator::initDeploymentTool() } int pathSize = searchPath.size(); - QDirIterator iterator(searchPath, QStringList() << nameFilter - , QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks - , QDirIterator::Subdirectories); + constexpr auto filters = QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks; + using F = QDirListing::IteratorFlag; + QDirListing dirList(searchPath, QStringList{nameFilter}, filters, F::Recursive); // foreach dirIterator-entry in d - while(iterator.hasNext()) { - iterator.next(); - - QString absoluteItemPath = Option::fixPathToTargetOS(QFileInfo(iterator.filePath()).absolutePath()); + for (const auto &dirEntry : dirList) { + const QString absoluteItemPath = Option::fixPathToTargetOS(dirEntry.absolutePath()); // Identify if it is just another subdir int diffSize = absoluteItemPath.size() - pathSize; // write out rules - conf.deployment.AdditionalFiles += iterator.fileName() + conf.deployment.AdditionalFiles += dirEntry.fileName() + "|" + absoluteItemPath + "|" + itemDevicePath + (diffSize ? (absoluteItemPath.right(diffSize)) : QLatin1String("")) + "|0;"; |