74 QFile listFile(pathToList);
75 if (!listFile.open(QFile::ReadOnly | QFile::Text))
77 QMultiHash<QString, QString> directoryToNecessaryImports;
78 while (!listFile.atEnd()) {
79 QByteArray partFilePath = listFile.readLine().trimmed();
80 QString directoryPath = QFileInfo(QString::fromUtf8(partFilePath)).absolutePath();
81 QDirIterator dirIt(directoryPath, {
"*_qt.part.conf"_L1 }, QDir::Filter::Files );
82 while (dirIt.hasNext()) {
83 QFile partialFile(dirIt.next());
84 if (!partialFile.open(QFile::ReadOnly | QFile::Text)) {
85 qDebug() <<
"could not open" << partialFile.fileName();
88 while (!partialFile.atEnd()) {
89 QByteArray import = partialFile.readLine().trimmed();
90 directoryToNecessaryImports.insert(directoryPath, QString::fromUtf8(import));
94 for (
const QString &directoryPath: directoryToNecessaryImports.keys()) {
95 QFile consolidatedQtConfFile(directoryPath + QDir::separator() + u"qt.conf");
96 if (!consolidatedQtConfFile.open(QFile::WriteOnly | QFile::Text)) {
97 qDebug() <<
"could not open" << consolidatedQtConfFile.fileName();
100 QTextStream out(&consolidatedQtConfFile);
101 QStringList allIncludes = directoryToNecessaryImports.values(directoryPath);
102 allIncludes.removeDuplicates();
103 out <<
"[Config]\nMergeQtConf = true\n"
104 <<
"[Paths]\nQmlImports = "
105 << allIncludes.join(u",") << Qt::endl;
107 QFile outfile(pathToList + u".done");
108 if (!outfile.open(QFile::WriteOnly | QFile::Text))
110 outfile.write(QByteArray::number(QDateTime::currentSecsSinceEpoch()));