summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config_help.txt4
-rw-r--r--mkspecs/features/data/configure.json2
-rw-r--r--mkspecs/features/qt_configure.prf16
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 = \