From f38d29133956c4196fbfd66895f3a31fad5f9948 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 1 Feb 2016 09:56:12 +0100 Subject: ClangBackEnd: Use QCommandLineParser. Output a proper usage message instead of a cryptic "wrong argument count" when launching it from the shell for testing. Change-Id: Iedb6b1062c9d246a514aefb05220942e4a6341df Reviewed-by: Marco Bubke --- src/tools/clangbackend/clangbackendmain.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src/tools/clangbackend/clangbackendmain.cpp') diff --git a/src/tools/clangbackend/clangbackendmain.cpp b/src/tools/clangbackend/clangbackendmain.cpp index 33a6c1660e..95b4931361 100644 --- a/src/tools/clangbackend/clangbackendmain.cpp +++ b/src/tools/clangbackend/clangbackendmain.cpp @@ -28,6 +28,7 @@ ** ****************************************************************************/ +#include #include #include @@ -35,6 +36,22 @@ #include #include +QString processArguments(QCoreApplication &application) +{ + QCommandLineParser parser; + parser.setApplicationDescription(QStringLiteral("Qt Creator Clang backend process.")); + parser.addHelpOption(); + parser.addVersionOption(); + parser.addPositionalArgument(QStringLiteral("connection"), QStringLiteral("Connection")); + + parser.process(application); + + if (parser.positionalArguments().isEmpty()) + parser.showHelp(1); + + return parser.positionalArguments().first(); +} + int main(int argc, char *argv[]) { QLoggingCategory::setFilterRules(QStringLiteral("*.debug=false")); @@ -46,10 +63,7 @@ int main(int argc, char *argv[]) QCoreApplication application(argc, argv); - if (application.arguments().count() != 2) { - qWarning() << "wrong argument count"; - return 1; - } + const QString connection = processArguments(application); ClangBackEnd::Messages::registerMessages(); @@ -57,7 +71,7 @@ int main(int argc, char *argv[]) clang_enableStackTraces(); ClangBackEnd::ClangIpcServer clangIpcServer; - ClangBackEnd::ConnectionServer connectionServer(application.arguments()[1]); + ClangBackEnd::ConnectionServer connectionServer(connection); connectionServer.start(); connectionServer.setIpcServer(&clangIpcServer); -- cgit v1.2.1