summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2015-10-21 22:31:54 -0700
committerThiago Macieira <thiago.macieira@intel.com>2015-10-22 18:17:50 +0000
commit4e2d1893a89ce3dcfaacea091acae1f673c14a9e (patch)
tree75b769987244b9be96106359f343f3e9f00e8046
parentac0933f83c5eccaf847b1c61477d8d7108333cda (diff)
downloadqttools-4e2d1893a89ce3dcfaacea091acae1f673c14a9e.tar.gz
qtplugininfo: Don't stop processing files if we find problems with one
This is useful when you run qtplugininfo /usr/lib64/qt5/plugins/*.so because KDE Frameworks 5 and Plasma 5 install a bunch of non-plugin libraries there. Change-Id: I22045d72c63a4741b83fffff140f6b3cce6f4881 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Volker Krause <volker.krause@kdab.com>
-rw-r--r--src/qtplugininfo/qtplugininfo.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/qtplugininfo/qtplugininfo.cpp b/src/qtplugininfo/qtplugininfo.cpp
index 39ffab974..9d09a547f 100644
--- a/src/qtplugininfo/qtplugininfo.cpp
+++ b/src/qtplugininfo/qtplugininfo.cpp
@@ -94,15 +94,18 @@ int main(int argc, char** argv)
if (printOptionList.contains("userdata"))
print |= PrintUserData;
+ int retval = 0;
foreach (const QString &plugin, parser.positionalArguments()) {
QByteArray pluginNativeName = QFile::encodeName(QDir::toNativeSeparators(plugin));
if (!QFile::exists(plugin)) {
std::cerr << "qtplugininfo: " << pluginNativeName.constData() << ": No such file or directory." << std::endl;
- return 1;
+ retval = 1;
+ continue;
}
if (!QLibrary::isLibrary(plugin)) {
std::cerr << "qtplugininfo: " << pluginNativeName.constData() << ": Not a plug-in." << std::endl;
- return 1;
+ retval = 1;
+ continue;
}
QPluginLoader loader(plugin);
@@ -110,7 +113,8 @@ int main(int argc, char** argv)
if (metaData.isEmpty()) {
std::cerr << "qtplugininfo: " << pluginNativeName.constData() << ": No plug-in meta-data found: "
<< qPrintable(loader.errorString()) << std::endl;
- return 1;
+ retval = 1;
+ continue;
}
QString iid = metaData.value("IID").toString();
@@ -123,7 +127,8 @@ int main(int argc, char** argv)
std::cerr << "qtplugininfo: " << pluginNativeName.constData()
<< ": Qt version mismatch - got major version " << (version >> 16)
<< ", expected " << (QT_VERSION >> 16) << std::endl;
- return 1;
+ retval = 1;
+ continue;
}
if (iid.isEmpty() || className.isEmpty() || debug.isNull()) {
std::cerr << "qtplugininfo: " << pluginNativeName.constData() << ": invalid metadata, missing required fields:";
@@ -134,11 +139,13 @@ int main(int argc, char** argv)
if (debug.isNull())
std::cerr << " debug";
std::cerr << std::endl;
- return 1;
+ retval = 1;
+ continue;
}
if (!userData.isNull() && !userData.isObject()) {
std::cerr << "qtplugininfo: " << pluginNativeName.constData() << ": invalid metadata, user data is not a JSON object" << std::endl;
- return 1;
+ retval = 1;
+ continue;
}
if (parser.positionalArguments().size() != 1)
@@ -161,5 +168,5 @@ int main(int argc, char** argv)
}
}
- return 0;
+ return retval;
}