diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2015-10-21 22:31:54 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2015-10-22 18:17:50 +0000 |
commit | 4e2d1893a89ce3dcfaacea091acae1f673c14a9e (patch) | |
tree | 75b769987244b9be96106359f343f3e9f00e8046 | |
parent | ac0933f83c5eccaf847b1c61477d8d7108333cda (diff) | |
download | qttools-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.cpp | 21 |
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; } |