From b2cb83ecbb1eec29268852d1b230f37e4c8592e9 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 13 Jun 2017 15:10:30 +0200 Subject: Pass the absolute path with the file when finding files When generating a project, the directories can be specified as arguments to the qmake call. As a result files can either be incorrectly added to the project with a leading slash, or can end up duplicated. By passing the absolute path with the file, it ensures that the file is added correctly and no duplicates occur as a result. Task-number: QTBUG-48342 Change-Id: If774de8d7f5cceca80042a25a3aa4e5b045249da Reviewed-by: Joerg Bornemann --- qmake/generators/projectgenerator.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'qmake/generators') diff --git a/qmake/generators/projectgenerator.cpp b/qmake/generators/projectgenerator.cpp index eb4f46cd7e..073d315aab 100644 --- a/qmake/generators/projectgenerator.cpp +++ b/qmake/generators/projectgenerator.cpp @@ -118,14 +118,15 @@ ProjectGenerator::init() dir = regex.left(s+1); regex = regex.right(regex.length() - (s+1)); } + const QDir d(dir); if (Option::recursive) { - QStringList entries = QDir(dir).entryList(QDir::Dirs | QDir::NoDotAndDotDot); + QStringList entries = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot); for (int i = 0; i < entries.count(); i++) dirs.append(dir + entries[i] + QDir::separator() + regex); } - QStringList files = QDir(dir).entryList(QDir::nameFiltersFromString(regex)); + QStringList files = d.entryList(QDir::nameFiltersFromString(regex)); for(int i = 0; i < (int)files.count(); i++) { - QString file = dir + files[i]; + QString file = d.absoluteFilePath(files[i]); if (addFile(file)) { add_depend = true; file_count++; -- cgit v1.2.3