summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-07-29 11:26:03 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2016-07-29 12:10:36 +0000
commita5c851598c96a9b7c9b0fd9b38b4f7aec42322de (patch)
tree179ee1289c1bec9eb0b046c9c86445fa6eab396a /src/tools
parentdd3a08dd539a17e52bb8eec19c9aff27f4de7de4 (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.cpp21
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);