From a5c851598c96a9b7c9b0fd9b38b4f7aec42322de Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 29 Jul 2016 11:26:03 +0200 Subject: moc: Add warnings when resolving and opening includes fails Previously, only cryptic warnings: QFSFileEngine::open: No file name specified occurred. Task-number: QTBUG-55014 Change-Id: Ic99614eb58c605ed6e1b86d3d4b8f527c5b9244c Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/tools/moc/main.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src/tools/moc/main.cpp') diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp index 0a10aef989..55cf7ed872 100644 --- a/src/tools/moc/main.cpp +++ b/src/tools/moc/main.cpp @@ -457,11 +457,22 @@ int runMoc(int argc, char **argv) const auto includeFiles = parser.values(includeOption); for (const QString &includeName : includeFiles) { QByteArray rawName = pp.resolveInclude(QFile::encodeName(includeName), moc.filename); - QFile f(QFile::decodeName(rawName)); - if (f.open(QIODevice::ReadOnly)) { - moc.symbols += Symbol(0, MOC_INCLUDE_BEGIN, rawName); - moc.symbols += pp.preprocessed(rawName, &f); - moc.symbols += Symbol(0, MOC_INCLUDE_END, rawName); + if (rawName.isEmpty()) { + fprintf(stderr, "Warning: Failed to resolve include \"%s\" for moc file %s\n", + includeName.toLocal8Bit().constData(), + moc.filename.isEmpty() ? "" : moc.filename.constData()); + } else { + QFile f(QFile::decodeName(rawName)); + if (f.open(QIODevice::ReadOnly)) { + moc.symbols += Symbol(0, MOC_INCLUDE_BEGIN, rawName); + moc.symbols += pp.preprocessed(rawName, &f); + moc.symbols += Symbol(0, MOC_INCLUDE_END, rawName); + } else { + fprintf(stderr, "Warning: Cannot open %s included by moc file %s: %s\n", + rawName.constData(), + moc.filename.isEmpty() ? "" : moc.filename.constData(), + f.errorString().toLocal8Bit().constData()); + } } } moc.symbols += pp.preprocessed(moc.filename, &in); -- cgit v1.2.3