summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/moc/collectjson.cpp4
-rw-r--r--src/tools/moc/collectjson.h2
-rw-r--r--src/tools/moc/main.cpp9
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('\'')));