From 6515d942aef76d7090e2421b85ac58eeae3614ea Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 24 Nov 2016 16:53:53 +0100 Subject: Set a proper name for the moc_predefs extra compiler In VS builds the default name is the first word of the command, in this case "cl". Use the generated file name instead. Change-Id: I8f0039eeae045f8b9a13caea8bd3e338bbe2ed17 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/moc.prf | 1 + 1 file changed, 1 insertion(+) (limited to 'mkspecs/features') diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index dc14d71db7..4d3632531a 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -28,6 +28,7 @@ win32:count(MOC_INCLUDEPATH, 40, >) { # UIKit builds are always multi-arch due to simulator_and_device (unless # -sdk is used) so this feature cannot possibly work. if(gcc|intel_icl|msvc):!rim_qcc:!uikit { + moc_predefs.name = "Generate moc_predefs.h" moc_predefs.CONFIG = no_link gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} -- cgit v1.2.3 From b9e800cd996e1401d3157a0cdb9e6ee6b05fd3a5 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 6 Dec 2016 16:00:14 +0100 Subject: fix qlalr invocation in silent builds Change-Id: I8cd5da01dcbcdebe29815a80cc0f65365727465d Reviewed-by: Alex Blasche Reviewed-by: Jake Petroules --- mkspecs/features/qlalr.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qlalr.prf b/mkspecs/features/qlalr.prf index 941bfe0d9f..54d8b583c6 100644 --- a/mkspecs/features/qlalr.prf +++ b/mkspecs/features/qlalr.prf @@ -25,7 +25,7 @@ for (s, QLALRSOURCES) { $${base}.variable_out = GENERATED_SOURCES $${base}.depends += $$QMAKE_QLALR_EXE $${base}.commands = $$QMAKE_QLALR $$QMAKE_QLALRFLAGS ${QMAKE_FILE_IN} - silent: $${base}.commands = @echo qlalr ${QMAKE_FILE_IN} && $${base}.commands + silent: $${base}.commands = @echo qlalr ${QMAKE_FILE_IN} && $$eval($${base}.commands) $${base}.name = QLALR ${QMAKE_FILE_IN} $${base}_h.input = $$invar -- cgit v1.2.3 From e1a70ce495928e8d81e80b11d7dbd4c4913ee438 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 6 Dec 2016 17:54:47 -0800 Subject: moc: force the Microsoft compiler not to define _MSC_EXTENSIONS This re-fixes commit d72ac3f35f4c6d6405e9675d54124b3ddb8d80ab, which simply removed the #define but did so at the wrong place. Instead of forcing the macro to be removed, let's simply not have it defined in the first place. Change-Id: Ie6dbad9bbbd9488887e8fffd148dd67d9a31b32e Reviewed-by: Jake Petroules --- mkspecs/features/moc.prf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index 4d3632531a..825c706950 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -31,10 +31,10 @@ if(gcc|intel_icl|msvc):!rim_qcc:!uikit { moc_predefs.name = "Generate moc_predefs.h" moc_predefs.CONFIG = no_link gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} - else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} + else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Za -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} else:msvc { moc_predefs.commands += $$QMAKE_CXX -Bx$$shell_quote($$shell_path($$QMAKE_QMAKE)) $$QMAKE_CXXFLAGS \ - -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} + -E -Za ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} } else: error("Oops, I messed up") moc_predefs.output = $$MOC_DIR/moc_predefs.h moc_predefs.input = MOC_PREDEF_FILE -- cgit v1.2.3 From 2dcc1a8e4636c754d51370c84a0aa8270e412389 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 17 Nov 2016 19:24:35 +0100 Subject: move preparation of configure test build dir to qmake-based system Change-Id: I650fb92cfa858bf6d7ff5756aa0efe182f036a55 Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 1 + 1 file changed, 1 insertion(+) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 74ad611ee5..7f3f710585 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -770,6 +770,7 @@ defineTest(qtConfTest_compile) { QMAKE_MAKE = "$$QMAKE_MAKE clean && $$QMAKE_MAKE" mkpath($$test_out_dir)|error() + write_file($$test_out_dir/.qmake.cache)|error() # add possible command line args qmake_args += $$qtConfPrepareArgs($$eval($${1}.args)) $$eval($${1}.literal_args) -- cgit v1.2.3 From 24cb1580e2bdb9eace8a419dcc44bffe13ed1550 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 23 Nov 2016 18:41:48 +0100 Subject: make handling of built-in configure options data-driven Change-Id: I08b226b6c9255b60393734e8ffcb745ccb63c597 Reviewed-by: Lars Knoll --- mkspecs/features/configure.prf | 2 ++ mkspecs/features/configure_base.prf | 2 -- mkspecs/features/data/configure.json | 21 ++++++++++++++++ mkspecs/features/qt_configure.prf | 46 ++++++++++++++---------------------- 4 files changed, 41 insertions(+), 30 deletions(-) create mode 100644 mkspecs/features/data/configure.json (limited to 'mkspecs/features') diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf index 4ca7c6ba07..934a18a924 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf @@ -4,6 +4,8 @@ cache() load(configure_base) +isEmpty(QMAKE_CONFIG_VERBOSE): QMAKE_CONFIG_VERBOSE = false + QMAKE_CONFIG_LOG = $$dirname(_QMAKE_CACHE_)/config.log recheck: write_file($$QMAKE_CONFIG_LOG, "") diff --git a/mkspecs/features/configure_base.prf b/mkspecs/features/configure_base.prf index dd1f4e5bfc..41f429e204 100644 --- a/mkspecs/features/configure_base.prf +++ b/mkspecs/features/configure_base.prf @@ -22,8 +22,6 @@ QMAKE_MAKE = $$(MAKE) # Make sure we don't inherit MAKEFLAGS - -i in particular is fatal. QMAKE_MAKE = "$${SETENV_PFX}MAKEFLAGS=$$SETENV_SFX $$QMAKE_MAKE" -isEmpty(QMAKE_CONFIG_VERBOSE): QMAKE_CONFIG_VERBOSE = false - defineTest(qtLog) { write_file($$QMAKE_CONFIG_LOG, 1, append) $$QMAKE_CONFIG_VERBOSE: for (l, 1): log("$$l$$escape_expand(\\n)") diff --git a/mkspecs/features/data/configure.json b/mkspecs/features/data/configure.json new file mode 100644 index 0000000000..a937f79b99 --- /dev/null +++ b/mkspecs/features/data/configure.json @@ -0,0 +1,21 @@ +{ + "files": { + }, + + "commandline": { + "options": { + "v": { "type": "enum", "name": "verbose", "values": { "yes": "true", "no": "false" } }, + "verbose": { "type": "enum", "values": { "yes": "true", "no": "false" } }, + + "recheck": { "type": "void", "name": "cache_use", "value": "positive" }, + "recheck-all": { "type": "void", "name": "cache_use", "value": "none" }, + } + + }, + + "features": { + "builtins": { + "output": [ "builtins" ] + } + } +} diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 7f3f710585..1be92a8b43 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -194,29 +194,6 @@ defineTest(qtConfParseCommandLine) { c = $$qtConfGetNextCommandlineArg() isEmpty(c): break() - # handle options to turn on verbose logging - contains(c, "^-v")|contains(c, "^--?verbose") { - QMAKE_CONFIG_VERBOSE = true - export(QMAKE_CONFIG_VERBOSE) - next() - } - contains(c, "^-no-v")|contains(c, "^--?no-verbose") { - QMAKE_CONFIG_VERBOSE = false - export(QMAKE_CONFIG_VERBOSE) - next() - } - - contains(c, "^--?recheck") { - QMAKE_CONFIG_CACHE_USE = positive - export(QMAKE_CONFIG_CACHE_USE) - next() - } - contains(c, "^--?recheck-all") { - QMAKE_CONFIG_CACHE_USE = none - export(QMAKE_CONFIG_CACHE_USE) - next() - } - didCustomCall = false for (customCall, customCalls) { $${customCall}($$c) { @@ -1619,6 +1596,19 @@ defineTest(qtConfOutput_privateFeature) { } } +# command line built-ins post-processing +defineTest(qtConfOutput_builtins) { + QMAKE_CONFIG_VERBOSE = $$eval(config.input.verbose) + isEmpty(QMAKE_CONFIG_VERBOSE): \ + QMAKE_CONFIG_VERBOSE = false + export(QMAKE_CONFIG_VERBOSE) + + QMAKE_CONFIG_CACHE_USE = $$eval(config.input.cache_use) + isEmpty(QMAKE_CONFIG_CACHE_USE): \ + QMAKE_CONFIG_CACHE_USE = all + export(QMAKE_CONFIG_CACHE_USE) +} + defineTest(qtConfProcessOneOutput) { feature = $${1} fpfx = $${currentConfig}.features.$${feature} @@ -1654,7 +1644,7 @@ defineTest(qtConfProcessOutput) { module = $$eval($${currentConfig}.module) # write it to the output files - isEmpty($${currentConfig}.files._KEYS_) { + !defined($${currentConfig}.files._KEYS_, var) { # set defaults that should work for most Qt modules isEmpty(module): \ error("Neither module nor files section specified in configuration file.") @@ -1727,6 +1717,8 @@ isEmpty(configsToProcess): \ load(configure_base) QMAKE_POST_CONFIGURE = +config.builtins.dir = $$PWD/data +configsToProcess = builtins $$configsToProcess allConfigs = for(ever) { isEmpty(configsToProcess): \ @@ -1760,14 +1752,12 @@ for(ever) { for (currentConfig, allConfigs): \ qtConfSetupLibraries() +qtConfParseCommandLine() + !isEmpty(_QMAKE_SUPER_CACHE_): \ QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_SUPER_CACHE_)/config.cache else: \ QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_CACHE_)/config.cache -QMAKE_CONFIG_CACHE_USE = all - -qtConfParseCommandLine() - !equals(QMAKE_CONFIG_CACHE_USE, none) { include($$QMAKE_CONFIG_CACHE, , true) # this crudely determines when to discard the cache. this also catches the case -- cgit v1.2.3 From 8ebc7e967c5d245ffab5dcbf666fc01a4df4fe6a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 15 Nov 2016 20:49:43 +0100 Subject: move configure -redo handling (mostly) to qmake-based system the qmake bootstrap uses some of the options, so the configures still read config.opt for their own purposes, but the general handling is entirely in the new system now. Change-Id: I2c6c657d4da01c8d520ac74795454747bb224bdd Reviewed-by: Lars Knoll --- mkspecs/features/data/configure.json | 2 ++ mkspecs/features/qt_configure.prf | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/data/configure.json b/mkspecs/features/data/configure.json index a937f79b99..20a83025e6 100644 --- a/mkspecs/features/data/configure.json +++ b/mkspecs/features/data/configure.json @@ -9,6 +9,8 @@ "recheck": { "type": "void", "name": "cache_use", "value": "positive" }, "recheck-all": { "type": "void", "name": "cache_use", "value": "none" }, + + "redo": { "type": "redo" } } }, diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 1be92a8b43..936a563b9e 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -177,6 +177,17 @@ defineTest(qtConfCommandline_addString) { export(config.input.$$opt) } +defineTest(qtConfCommandline_redo) { + !exists($$OUT_PWD/config.opt) { + qtConfAddError("No config.opt present - cannot redo configuration.") + return() + } + QMAKE_EXTRA_ARGS = $$cat($$OUT_PWD/config.opt, lines) $$QMAKE_EXTRA_ARGS + export(QMAKE_EXTRA_ARGS) + QMAKE_REDO_CONFIG = true + export(QMAKE_REDO_CONFIG) +} + defineTest(qtConfParseCommandLine) { customCalls = for (cc, allConfigs) { @@ -1752,6 +1763,8 @@ for(ever) { for (currentConfig, allConfigs): \ qtConfSetupLibraries() +QMAKE_SAVED_ARGS = $$QMAKE_EXTRA_ARGS +QMAKE_REDO_CONFIG = false qtConfParseCommandLine() !isEmpty(_QMAKE_SUPER_CACHE_): \ @@ -1829,13 +1842,17 @@ for (currentConfig, allConfigs) { !isEmpty(QT_CONFIGURE_SKIPPED_MODULES): \ qtConfAddNote("The following modules are not being compiled in this configuration:" $$QT_CONFIGURE_SKIPPED_MODULES) +logn("Done running configuration tests.") +logn() + +!$$QMAKE_REDO_CONFIG { + write_file($$OUT_PWD/config.opt, QMAKE_SAVED_ARGS)|error() +} + # these come from the pri files loaded above. for (p, QMAKE_POST_CONFIGURE): \ eval($$p) -logn("Done running configuration tests.") -logn() - logn("Configure summary:") logn() qtConfPrintReport() -- cgit v1.2.3 From d004e086a26529bcd1cc950341f71f77953c3866 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 18 Nov 2016 21:10:36 +0100 Subject: move definition of configure -continue switch to builtins ... where it actually belongs, as it should work in each repo in a modular build. Change-Id: I5463f0bcacb239900bed0b0f7be9cf32a3eab04e Reviewed-by: Lars Knoll --- mkspecs/features/data/configure.json | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mkspecs/features') diff --git a/mkspecs/features/data/configure.json b/mkspecs/features/data/configure.json index 20a83025e6..8e5ff5f0a4 100644 --- a/mkspecs/features/data/configure.json +++ b/mkspecs/features/data/configure.json @@ -7,6 +7,8 @@ "v": { "type": "enum", "name": "verbose", "values": { "yes": "true", "no": "false" } }, "verbose": { "type": "enum", "values": { "yes": "true", "no": "false" } }, + "continue": "void", + "recheck": { "type": "void", "name": "cache_use", "value": "positive" }, "recheck-all": { "type": "void", "name": "cache_use", "value": "none" }, -- cgit v1.2.3 From e2eab15e34181d81bac26613ab72c03240402bf8 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 23 Nov 2016 21:11:11 +0100 Subject: write HOST_QT_TOOLS to qmodule.pri instead of qhost.pri its only consumer is qt_tool.prf, which is an internal api. Change-Id: Iae90b079c5af60efad2ded70d6ea481212e5353a Reviewed-by: Lars Knoll --- mkspecs/features/qt_tool.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf index 4b73b4b8f7..a8d589f0fa 100644 --- a/mkspecs/features/qt_tool.prf +++ b/mkspecs/features/qt_tool.prf @@ -27,7 +27,7 @@ DEFINES *= QT_USE_QSTRINGBUILDER vars = binary depends - isEmpty(HOST_QT_TOOLS) { + !host_build|isEmpty(HOST_QT_TOOLS) { load(resolve_target) !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private) -- cgit v1.2.3 From e58eb3d6f953c224c2d47cd344bc41ba9f499223 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 23 Nov 2016 20:11:17 +0100 Subject: move device spec validation to configure instead of letting the specs validate themselves on each call, let them only define a callback for use by the verifyspec configure test. this is somewhat faster, and allows them to be loaded before qdevice.pri is populated. Change-Id: I2b60d006b33bbf42c28949f10ad429520ed32f46 Reviewed-by: Laszlo Agocs Reviewed-by: Lars Knoll --- mkspecs/features/device_config.prf | 33 --------------------------------- 1 file changed, 33 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/device_config.prf b/mkspecs/features/device_config.prf index 9281d3e407..5c5b094a9c 100644 --- a/mkspecs/features/device_config.prf +++ b/mkspecs/features/device_config.prf @@ -10,36 +10,3 @@ unset(DEVICE_PRI) # this variable can be persisted via qmake -set CROSS_COMPILE /foo !host_build:isEmpty(CROSS_COMPILE): CROSS_COMPILE = $$[CROSS_COMPILE] - -# Provide a function to be used by mkspecs -defineTest(deviceSanityCheckCompiler) { - equals(QMAKE_HOST.os, Windows): \ - sfx = .exe - else: \ - sfx = - - # Build the compiler filename using the first value in QMAKE_CXX in order to - # support tools like ccache, which give QMAKE_CXX values of the form: - # ccache - compiler = $$first(QMAKE_CXX)$$sfx - - # Check if the binary exists with an absolute path. Do this check - # before the CROSS_COMPILE empty check below to allow the mkspec - # to derive the compiler path from other device options. - exists($$compiler):return() - - # Check for possible reasons of failure - # check if CROSS_COMPILE device-option is set - isEmpty(CROSS_COMPILE):error("CROSS_COMPILE needs to be set via -device-option CROSS_COMPILE=") - - # Check if QMAKE_CXX points to an executable. - ensurePathEnv() - for (dir, QMAKE_PATH_ENV) { - exists($$dir/$${compiler}): \ - return() - } - - # QMAKE_CXX does not point to a compiler. - error("Compiler $$QMAKE_CXX not found. Check the value of CROSS_COMPILE -device-option") -} - -- cgit v1.2.3 From 42196f4061263d6d0e453c0561f7604cadc6d0a3 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 24 Nov 2016 17:36:38 +0100 Subject: nuke configure -host-option in its current form, it was introduced only in 5.7, mostly as a side effect of -external-hostbindir (which is now handled differently). it only ever worked for the macOS and MinGW specs, as a side effect of them supporting -sdk and -device-option (for good reasons), and was supported only by the unix configure. it's not believed to be really useful and complicates matters somewhat, so get rid of it again. should it ever become actually relevant, it can be re-introduced properly, probably along with a -host-sdk option for macOS. Change-Id: Ib078469ea39deb821c7b6a8c67fda9e1a95fedf5 Reviewed-by: Lars Knoll --- mkspecs/features/device_config.prf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/device_config.prf b/mkspecs/features/device_config.prf index 5c5b094a9c..c15559e174 100644 --- a/mkspecs/features/device_config.prf +++ b/mkspecs/features/device_config.prf @@ -1,12 +1,12 @@ # This file is loaded by some qmakespecs to get early configuration data. -host_build: \ - PRI_FILE_NAME = qhost.pri -else: \ - PRI_FILE_NAME = qdevice.pri -DEVICE_PRI = $$[QT_HOST_DATA/get]/mkspecs/$$PRI_FILE_NAME +# Some of these qmakespecs can be used also in host mode, but they are not +# supposed to be influenced by -device-option then. +host_build: return() + +DEVICE_PRI = $$[QT_HOST_DATA/get]/mkspecs/qdevice.pri exists($$DEVICE_PRI):include($$DEVICE_PRI) unset(DEVICE_PRI) # this variable can be persisted via qmake -set CROSS_COMPILE /foo -!host_build:isEmpty(CROSS_COMPILE): CROSS_COMPILE = $$[CROSS_COMPILE] +isEmpty(CROSS_COMPILE): CROSS_COMPILE = $$[CROSS_COMPILE] -- cgit v1.2.3 From 169a40d511165f6c3c9a71cd5c079786c22d2aca Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 24 Nov 2016 18:41:48 +0100 Subject: move generation of qconfig.cpp (and qt.conf) to qmake-based configure this moves us another step towards the "outer" configure doing just minimal bootstrapping of qmake. a challenge here was that so far, qmake itself needed qconfig.cpp. this was replaced by usage of a qt.conf file instead of compiled-in values. however, to make the executable still self-contained, that qt.conf is embedded into it (by simple appending of a fixed signature and the text file). the qmake with the embedded qt.conf is not used for the qt build itself, which instead relies on the qt.conf in bin/ as before. however, due to the missing built-in values, this file now needs to contain more information than before. but except for a minimal version that is needed to start up qmake/configure at all, that file is now also generated with qmake. as some of the newly set up properties are subsequently used by configure itself, qmake gains a (deliberately undocumented) function to reload the qt.conf after it's fully populated. unlike the old implementations, this one doesn't emit redundant qt.conf entries which match the hard-coded fallbacks. omitting them leads to leaner files which are more comprehensible. Started-by: Paolo Angelelli Change-Id: I4526ef64b3c89d9851e10f83965fe479ed7f39f6 Reviewed-by: Jake Petroules --- mkspecs/features/qt_configure.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 936a563b9e..cd4d36251e 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1675,7 +1675,7 @@ defineTest(qtConfProcessOutput) { $${currentConfig}.output.$$type += "$$k -= $$eval($${currentConfig}.output.$${type}.remove.$$k)" for (k, $${currentConfig}.output.$${type}.append._KEYS_): \ $${currentConfig}.output.$$type += "$$k += $$eval($${currentConfig}.output.$${type}.append.$$k)" - } else { + } else: contains(type, ".*Header") { for (define, $${currentConfig}.output.$${type}._KEYS_) { value = $$eval($${currentConfig}.output.$${type}.$${define}) $${currentConfig}.output.$$type += "$${LITERAL_HASH}define $$define $$value" -- cgit v1.2.3 From 8861b82f9ef59fa871adc86552012cd90eee6e09 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 24 Nov 2016 18:41:57 +0100 Subject: move qdevice.pri creation to qmake-based configure system Change-Id: I06540c3b6d98303bd9a218feedfb529993477ed6 Reviewed-by: Lars Knoll Reviewed-by: BogDan Vatra Reviewed-by: Jake Petroules --- mkspecs/features/qt_configure.prf | 3 ++- mkspecs/features/toolchain.prf | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index cd4d36251e..b7b4e1f994 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -162,7 +162,8 @@ defineTest(qtConfCommandline_addString) { val = $${2} isEmpty(val): val = $$qtConfGetNextCommandlineArg() - contains(val, "^-.*|[A-Z_]+=.*")|isEmpty(val) { + # Note: Arguments which are variable assignments are legit here. + contains(val, "^-.*")|isEmpty(val) { qtConfAddError("No value supplied to command line option '$$opt'.") return() } diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index 3f266dd2a4..0ef0fa8fc7 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -1,4 +1,7 @@ +# In early configure setup; nothing useful to be done here. +isEmpty(QMAKE_CXX): return() + defineReplace(qtMakeExpand) { out = "$$1" for(ever) { -- cgit v1.2.3 From ab0cc3055d3d1f0faa98f96a7e8ae58b6ef6461a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 16 Nov 2016 15:13:52 +0100 Subject: move all target spec handling to qmake-based configure system we pull this feat off by booting configure with a dummy spec. the proper spec gets loaded subsequently. note that it was necessary to move the cache loading after processing the early checks (from which the spec handling is triggered). this is just fine, as the cache is needed only by tests, which are forbidden at this stage by definition. Change-Id: I5120e25a8bf05fb8cc5485fd93cf6387301089aa Reviewed-by: Jake Petroules --- mkspecs/features/qt_configure.prf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index b7b4e1f994..41bd75c45d 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1768,6 +1768,14 @@ QMAKE_SAVED_ARGS = $$QMAKE_EXTRA_ARGS QMAKE_REDO_CONFIG = false qtConfParseCommandLine() +for (currentConfig, allConfigs) { + qtConfSetModuleName() + qtConfSetupModuleOutputs() + # do early checks, mainly to validate the command line + qtConfProcessEarlyChecks() +} +qtConfCheckErrors() + !isEmpty(_QMAKE_SUPER_CACHE_): \ QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_SUPER_CACHE_)/config.cache else: \ @@ -1790,14 +1798,6 @@ QMAKE_CONFIG_LOG = $$OUT_PWD/config.log !equals(QMAKE_CONFIG_CACHE_USE, all): \ write_file($$QMAKE_CONFIG_LOG, "") -for (currentConfig, allConfigs) { - qtConfSetModuleName() - qtConfSetupModuleOutputs() - # do early checks, mainly to validate the command line - qtConfProcessEarlyChecks() -} -qtConfCheckErrors() - CONFIG += qt_conf_tests_allowed logn() logn("Running configuration tests...") -- cgit v1.2.3