summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-08-30 18:10:41 +0200
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-10-04 08:26:39 +0000
commit0872b62b2e3429743db89ac84827943f5b630357 (patch)
tree028b6824a0019ebec39f850c42f6e45ae9ee2538
parentd01133a7fcc50a791025cddca53c18d34deb40a0 (diff)
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 <lars.knoll@qt.io>
-rw-r--r--config_help.txt2
-rw-r--r--mkspecs/features/qt_configure.prf21
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'.")