From 7e27afd88fbc28f767a51e39dda780290f65a7fb Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 11 Oct 2018 14:26:24 +0200 Subject: configure: log -I and -L before doing first library check ... for debugging purposes. this needs to work in every configure run even though the options (currently) come from qtbase's global scope. this is accomplished by automatically injecting the test type dependencies declared in the 'builtins' scope (where they generally make no sense whatsoever, because there are no tests there) into other scopes (the first one that has a test of the particular type, specifically). we do that *after* the scope's own test type deps, so it can do its custom stuff first (it can explicitly activate the required features if it depends on some global stuff). Change-Id: I67317da1b55804d39458bdbcf13d39a3e57a13bf Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- mkspecs/features/data/configure.json | 10 ++++++++++ mkspecs/features/qt_configure.prf | 26 ++++++++++++++++++++------ 2 files changed, 30 insertions(+), 6 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/data/configure.json b/mkspecs/features/data/configure.json index 167c502e82..faa89231a0 100644 --- a/mkspecs/features/data/configure.json +++ b/mkspecs/features/data/configure.json @@ -17,5 +17,15 @@ "list-features": "void", "list-libraries": "void" } + }, + + "testTypeDependencies": { + "library": [ "library-paths" ] + }, + + "features": { + "library-paths": { + "output": [ "libraryPaths" ] + } } } diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 81b820978a..2cc6b49d3c 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1156,7 +1156,7 @@ defineTest(qtConfSetupTestTypeDeps) { } } -defineTest(qtConfEnsureTestTypeDeps) { +defineTest(qtConfEnsureTestTypeDepsOne) { depsn = $${currentConfig}.testTypeDependencies.$${1}._KEYS_ !isEmpty($$depsn) { for (dep, $$depsn) { @@ -1170,12 +1170,18 @@ defineTest(qtConfEnsureTestTypeDeps) { fwdsn = $${currentConfig}.testTypeForwards.$${1} !isEmpty($$fwdsn) { for (fwd, $$fwdsn): \ - qtConfEnsureTestTypeDeps($$fwd) + qtConfEnsureTestTypeDepsOne($$fwd) $$fwdsn = export($$fwdsn) } } +defineTest(qtConfEnsureTestTypeDeps) { + qtConfEnsureTestTypeDepsOne($$1) + currentConfig = config.builtins + qtConfEnsureTestTypeDepsOne($$1) +} + defineTest(qtRunSingleTest) { tpfx = $${currentConfig}.tests.$${1} defined($${tpfx}.result, var): \ @@ -1660,6 +1666,11 @@ defineTest(qtConfCheckErrors) { # output generation # +defineTest(qtConfOutput_libraryPaths) { + qtLog("Global lib dirs: [$$val_escape(EXTRA_LIBDIR)] [$$val_escape(QMAKE_DEFAULT_LIBDIRS)]") + qtLog("Global inc dirs: [$$val_escape(EXTRA_INCLUDEPATH)] [$$val_escape(QMAKE_DEFAULT_INCDIRS)]") +} + # qtConfOutputVar(modifier, output, name, value) defineTest(qtConfOutputVar) { modifier = $$1 @@ -2028,6 +2039,9 @@ for(ever) { } configsToProcess = $$subconfigs $$configsToProcess } +# 'builtins' is used for command line parsing and test type dependency +# injection, but its features must not be processed regularly. +allModuleConfigs = $$member(allConfigs, 1, -1) QMAKE_SAVED_ARGS = $$QMAKE_EXTRA_ARGS QMAKE_REDO_CONFIG = false @@ -2036,7 +2050,7 @@ qtConfCheckErrors() !isEmpty(config.input.list-features) { all_ft = - for (currentConfig, allConfigs) { + for (currentConfig, allModuleConfigs) { for (k, $${currentConfig}.features._KEYS_) { pp = $$eval($${currentConfig}.features.$${k}.purpose) !isEmpty(pp) { @@ -2056,7 +2070,7 @@ qtConfCheckErrors() !isEmpty(config.input.list-libraries) { logn() - for (currentConfig, allConfigs) { + for (currentConfig, allModuleConfigs) { !isEmpty($${currentConfig}.exports._KEYS_) { !isEmpty($${currentConfig}.module): \ logn($$eval($${currentConfig}.module):) @@ -2093,7 +2107,7 @@ qtLog("Command line: $$qtSystemQuote($$QMAKE_SAVED_ARGS)") $$QMAKE_REDO_CONFIG: \ qtLog("config.opt: $$qtSystemQuote($$QMAKE_EXTRA_REDO_ARGS)") -for (currentConfig, allConfigs) { +for (currentConfig, allModuleConfigs) { qtConfSetModuleName() qtConfSetupModuleOutputs() # do early checks, mainly to validate the command line @@ -2137,7 +2151,7 @@ CONFIG += qt_conf_tests_allowed logn() logn("Running configuration tests...") -for (currentConfig, allConfigs) { +for (currentConfig, allModuleConfigs) { tdir = $$eval($${currentConfig}.testDir) isEmpty(tdir): tdir = config.tests QMAKE_CONFIG_TESTS_DIR = $$absolute_path($$tdir, $$eval($${currentConfig}.dir)) -- cgit v1.2.3