diff options
-rw-r--r-- | config_help.txt | 4 | ||||
-rw-r--r-- | mkspecs/features/data/configure.json | 2 | ||||
-rw-r--r-- | mkspecs/features/qt_configure.prf | 16 |
3 files changed, 19 insertions, 3 deletions
diff --git a/config_help.txt b/config_help.txt index 003752dbe7..9c424391a9 100644 --- a/config_help.txt +++ b/config_help.txt @@ -66,8 +66,10 @@ Configure meta: -redo ................ Re-configure with previously used options. Additional options may be passed, but will not be saved for later use by -redo. - -recheck ............. Discard cached negative configure test results. + -recheck [test,...] .. Discard cached negative configure test results. Use this after installing missing dependencies. + Alternatively, if tests are specified, only their + results are discarded. -recheck-all ......... Discard all cached configure test results. -feature-<feature> ... Enable <feature> diff --git a/mkspecs/features/data/configure.json b/mkspecs/features/data/configure.json index 38623d46a4..167c502e82 100644 --- a/mkspecs/features/data/configure.json +++ b/mkspecs/features/data/configure.json @@ -9,7 +9,7 @@ "continue": "void", - "recheck": { "type": "void", "name": "cache_use", "value": "positive" }, + "recheck": { "type": "optionalString", "name": "cache_recheck" }, "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 dcd87a7a1a..6ab40e53ec 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -2041,14 +2041,28 @@ qtConfCheckErrors() QMAKE_CONFIG_CACHE = $$OUT_PWD/config.cache QMAKE_CONFIG_CACHE_USE = $$eval(config.input.cache_use) +cache_recheck = $$eval(config.input.cache_recheck) +equals(cache_recheck, yes) { + QMAKE_CONFIG_CACHE_USE = positive + cache_recheck = +} isEmpty(QMAKE_CONFIG_CACHE_USE): \ QMAKE_CONFIG_CACHE_USE = all !equals(QMAKE_CONFIG_CACHE_USE, none) { include($$QMAKE_CONFIG_CACHE, , true) # this crudely determines when to discard the cache. this also catches the case # of no cache being there in the first place. - !equals(cache.platform, $$[QMAKE_SPEC])|!equals(cache.xplatform, $$[QMAKE_XSPEC]): \ + !equals(cache.platform, $$[QMAKE_SPEC])|!equals(cache.xplatform, $$[QMAKE_XSPEC]) { QMAKE_CONFIG_CACHE_USE = none + } else: !isEmpty(cache_recheck) { + for (cr, $$list($$split(cache_recheck, ","))) { + !isEmpty(cache.$${cr}._KEYS_) { + cache.$${cr}._KEYS_ = + } else { + qtConfAddWarning("Attempting to discard non-cached result '$$cr'.") + } + } + } } equals(QMAKE_CONFIG_CACHE_USE, none) { cont = \ |