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 <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
bb10
Oswald Buddenhagen 2018-10-11 14:26:24 +02:00
parent 659eff9f2d
commit 7e27afd88f
2 changed files with 30 additions and 6 deletions

View File

@ -17,5 +17,15 @@
"list-features": "void",
"list-libraries": "void"
}
},
"testTypeDependencies": {
"library": [ "library-paths" ]
},
"features": {
"library-paths": {
"output": [ "libraryPaths" ]
}
}
}

View File

@ -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))