diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-07-29 11:26:03 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-07-29 12:10:36 +0000 |
commit | a5c851598c96a9b7c9b0fd9b38b4f7aec42322de (patch) | |
tree | 179ee1289c1bec9eb0b046c9c86445fa6eab396a /src/tools | |
parent | dd3a08dd539a17e52bb8eec19c9aff27f4de7de4 (diff) |
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) <ogoffart@woboq.com>
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/moc/main.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
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() ? "<standard input>" : 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() ? "<standard input>" : moc.filename.constData(), + f.errorString().toLocal8Bit().constData()); + } } } moc.symbols += pp.preprocessed(moc.filename, &in); |