From 0872b62b2e3429743db89ac84827943f5b630357 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 30 Aug 2016 18:10:41 +0200 Subject: [PATCH] make command line parsing more compliant with configure script - generic --* options are defined to be booleans, without the possibility of having an additional parameter - -qt and -system options don't exist in the --* form - --foo=bar options exist only in the --* form Task-number: QTBUG-55610 Change-Id: Ib0480ac6f479df48045c9de8e854a525862ee363 Reviewed-by: Lars Knoll --- config_help.txt | 2 +- mkspecs/features/qt_configure.prf | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/config_help.txt b/config_help.txt index 76c0c60348..296bf807d9 100644 --- a/config_help.txt +++ b/config_help.txt @@ -46,7 +46,7 @@ Conventions for the remaining options: When an option's description is followed by a list of values in brackets, the interpretation is as follows: 'yes' represents the bare option; all other values are possible prefixes to the option, e.g., -no-gui. Alternatively, the value can be assigned, e.g., --gui=yes. Values are listed in the order they are tried if not specified; +--gui=yes. Values are listed in the order they are tried if not specified; 'auto' is a shorthand for 'yes/no'. Solitary 'yes' and 'no' represent binary options without auto-detection. diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index e34d7ad194..8119a130b8 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -245,17 +245,20 @@ defineTest(qtConfParseCommandLine) { } else: contains(c, "^--?(disable|no)-(.*)") { opt = $$replace(c, "^--?(disable|no)-(.*)", "\\2") val = no - } else: contains(c, "^--?qt-(.*)") { - opt = $$replace(c, "^--?qt-(.*)", "\\1") + } else: contains(c, "^--([^=]+)=(.*)") { + opt = $$replace(c, "^--?([^=]+)=(.*)", "\\1") + val = $$replace(c, "^--?([^=]+)=(.*)", "\\2") + } else: contains(c, "^--(.*)") { + opt = $$replace(c, "^--(.*)", "\\1") + val = yes + } else: contains(c, "^-qt-(.*)") { + opt = $$replace(c, "^-qt-(.*)", "\\1") val = qt - } else: contains(c, "^--?system-(.*)") { - opt = $$replace(c, "^--?system-(.*)", "\\1") + } else: contains(c, "^-system-(.*)") { + opt = $$replace(c, "^-system-(.*)", "\\1") val = system - } else: contains(c, "^--?([^-].*)=(.*)") { - opt = $$replace(c, "^--?([^-].*)=(.*)", "\\1") - val = $$replace(c, "^--?([^-].*)=(.*)", "\\2") - } else: contains(c, "^--?([^-].*)") { - opt = $$replace(c, "^--?([^-].*)", "\\1") + } else: contains(c, "^-(.*)") { + opt = $$replace(c, "^-(.*)", "\\1") val = } else { qtConfAddError("Invalid command line parameter '$$c'.")