diff options
-rw-r--r-- | src/tools/moc/collectjson.cpp | 4 | ||||
-rw-r--r-- | src/tools/moc/collectjson.h | 2 | ||||
-rw-r--r-- | src/tools/moc/main.cpp | 9 |
3 files changed, 9 insertions, 6 deletions
diff --git a/src/tools/moc/collectjson.cpp b/src/tools/moc/collectjson.cpp index ed65a9ed08..6577a3216b 100644 --- a/src/tools/moc/collectjson.cpp +++ b/src/tools/moc/collectjson.cpp @@ -51,7 +51,7 @@ static bool readFromDevice(QIODevice *device, QJsonArray *allMetaObjects) return true; } -int collectJson(const QStringList &jsonFiles, const QString &outputFile) +int collectJson(const QStringList &jsonFiles, const QString &outputFile, bool skipStdIn) { QHashSeed::setDeterministicGlobalSeed(); @@ -70,7 +70,7 @@ int collectJson(const QStringList &jsonFiles, const QString &outputFile) } QJsonArray allMetaObjects; - if (jsonFiles.isEmpty()) { + if (jsonFiles.isEmpty() && !skipStdIn) { QFile f; if (!f.open(stdin, QIODevice::ReadOnly)) { fprintf(stderr, "Error opening stdin for reading\n"); diff --git a/src/tools/moc/collectjson.h b/src/tools/moc/collectjson.h index 9d329c96ca..3a33952a54 100644 --- a/src/tools/moc/collectjson.h +++ b/src/tools/moc/collectjson.h @@ -35,7 +35,7 @@ QT_BEGIN_NAMESPACE -int collectJson(const QStringList &jsonFiles, const QString &outputFile); +int collectJson(const QStringList &jsonFiles, const QString &outputFile, bool skipStdIn); QT_END_NAMESPACE diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp index 1cb383c92f..a2790fa1f7 100644 --- a/src/tools/moc/main.cpp +++ b/src/tools/moc/main.cpp @@ -145,9 +145,10 @@ QByteArray composePreprocessorOutput(const Symbols &symbols) { return output; } -static QStringList argumentsFromCommandLineAndFile(const QStringList &arguments) +static QStringList argumentsFromCommandLineAndFile(const QStringList &arguments, bool &hasOptionFiles) { QStringList allArguments; + hasOptionFiles = false; allArguments.reserve(arguments.size()); for (const QString &argument : arguments) { // "@file" doesn't start with a '-' so we can't use QCommandLineParser for it @@ -163,6 +164,7 @@ static QStringList argumentsFromCommandLineAndFile(const QStringList &arguments) error("Cannot open options file specified with @"); return QStringList(); } + hasOptionFiles = true; while (!f.atEnd()) { QString line = QString::fromLocal8Bit(f.readLine().trimmed()); if (!line.isEmpty()) @@ -378,7 +380,8 @@ int runMoc(int argc, char **argv) parser.addPositionalArgument(QStringLiteral("[MOC generated json file]"), QStringLiteral("MOC generated json output")); - const QStringList arguments = argumentsFromCommandLineAndFile(app.arguments()); + bool hasOptionFiles = false; + const QStringList arguments = argumentsFromCommandLineAndFile(app.arguments(), hasOptionFiles); if (arguments.isEmpty()) return 1; @@ -387,7 +390,7 @@ int runMoc(int argc, char **argv) const QStringList files = parser.positionalArguments(); output = parser.value(outputOption); if (parser.isSet(collectOption)) - return collectJson(files, output); + return collectJson(files, output, hasOptionFiles); if (files.count() > 1) { error(qPrintable(QLatin1String("Too many input files specified: '") + files.join(QLatin1String("' '")) + QLatin1Char('\''))); |