summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2021-03-01 17:13:56 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-03-09 18:21:32 +0000
commitebd4d0cbf4274f456930da49f634d3fd465c92d4 (patch)
tree98d57ce5c075314333940ee238f0a262672cab0d /cmake
parente591f141171b3e7816dba29278ea15d43c378d9a (diff)
configure: Fix error when turning on/off non-emitted features
Features that are not emitted in the current configuration (e.g. plugin-manifests on Linux) should not yield an error. Instead, print a warning message like Qt5's configure did. Set insignificant feature to OFF. Remove the now unneeded emit_if parameter from qt_feature_set_cache_value. Fixes: QTBUG-88305 Change-Id: I0f2ce152fca5f08417038c9bd2c07639ff6a3df4 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit c4f5762b20dc20bab3cc62e9166d0e5b36e21cc6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtFeature.cmake28
1 files changed, 14 insertions, 14 deletions
diff --git a/cmake/QtFeature.cmake b/cmake/QtFeature.cmake
index f38d464221..61e645f6e0 100644
--- a/cmake/QtFeature.cmake
+++ b/cmake/QtFeature.cmake
@@ -227,13 +227,8 @@ function(_qt_internal_dump_expression_values expression_dump expression)
set(${expression_dump} "${${expression_dump}}" PARENT_SCOPE)
endfunction()
-function(qt_feature_set_cache_value resultVar feature emit_if condition calculated label)
+function(qt_feature_set_cache_value resultVar feature condition calculated label)
if (DEFINED "FEATURE_${feature}")
- # Must set up the cache
- if (NOT (emit_if))
- message(FATAL_ERROR "Sanity check failed: FEATURE_${feature} that was not emitted was found in the CMakeCache.")
- endif()
-
# Revisit value:
set(cache "${FEATURE_${feature}}")
@@ -257,12 +252,8 @@ meet its condition after reconfiguration.")
set("FEATURE_${feature}" "${cache}" CACHE BOOL "${label}" FORCE)
else()
# Initial setup:
- if (emit_if)
- set("FEATURE_${feature}" "${calculated}" CACHE BOOL "${label}")
- set(result "${calculated}")
- else()
- set(result OFF)
- endif()
+ set("FEATURE_${feature}" "${calculated}" CACHE BOOL "${label}")
+ set(result "${calculated}")
endif()
set("${resultVar}" "${result}" PARENT_SCOPE)
@@ -350,8 +341,17 @@ function(qt_evaluate_feature feature)
endif()
endif()
- qt_feature_set_cache_value(cache "${feature}" "${emit_if}" "${condition}" "${result}"
- "${arg_LABEL}")
+ if(NOT emit_if AND DEFINED FEATURE_${feature})
+ set(msg "")
+ string(APPEND msg
+ "Feature ${feature} is insignificant in this configuration, "
+ "ignoring related command line option(s).")
+ qt_configure_add_report_entry(TYPE WARNING MESSAGE "${msg}")
+ set(result OFF)
+ set(FEATURE_${feature} OFF)
+ endif()
+
+ qt_feature_set_cache_value(cache "${feature}" "${condition}" "${result}" "${arg_LABEL}")
qt_feature_set_value("${feature}" "${cache}" "${condition}" "${arg_LABEL}"
"${arg_CONDITION}")