diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2019-01-10 10:50:38 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2019-01-17 08:33:27 +0000 |
commit | 4f26758978e84f959a28d90b2ff336bae32a2d3f (patch) | |
tree | 056a6c261a0dd79696a36ea5f962a9b8aa8ac27e /cmake/QtFeature.cmake | |
parent | b705021b4eaed1e61d39dc481fd5373722c6f460 (diff) |
CMake: Introduce Qt::GlobalConfig to hold the global features
This simplifies the handling of features a bit as it removes the special
code to store two sets of features in Qt::Core.
Change-Id: I536d41cfc76a02af054e3cfbad6bda50b1e9e49a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'cmake/QtFeature.cmake')
-rw-r--r-- | cmake/QtFeature.cmake | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/cmake/QtFeature.cmake b/cmake/QtFeature.cmake index 380626b35a..ba4ca41c5b 100644 --- a/cmake/QtFeature.cmake +++ b/cmake/QtFeature.cmake @@ -401,11 +401,12 @@ function(qt_config_compile_test_x86simd extension label) endfunction() function(qt_pull_features_into_current_scope) - cmake_parse_arguments(arg "PUBLIC_FEATURES;PRIVATE_FEATURES" "FEATURE_PROPERTY_INFIX" "" ${ARGN}) + cmake_parse_arguments(arg "PUBLIC_FEATURES;PRIVATE_FEATURES" "" "" ${ARGN}) foreach(target IN ITEMS ${arg_UNPARSED_ARGUMENTS}) if(NOT TARGET ${target}) continue() endif() + get_target_property(target_type "${target}" TYPE) if("${target_type}" STREQUAL "INTERFACE_LIBRARY") set(property_prefix "INTERFACE_") @@ -419,11 +420,11 @@ function(qt_pull_features_into_current_scope) set(value ON) foreach(state IN ITEMS ENABLED DISABLED) - get_target_property(features "${target}" ${property_prefix}QT_${arg_FEATURE_PROPERTY_INFIX}${state}_${visibility}_FEATURES) + get_target_property(features "${target}" ${property_prefix}QT_${state}_${visibility}_FEATURES) if("${features}" STREQUAL "features-NOTFOUND") continue() endif() - foreach(feature ${features}) + foreach(feature IN ITEMS ${features}) set(QT_FEATURE_${feature} ${value} PARENT_SCOPE) endforeach() set(value OFF) @@ -437,7 +438,7 @@ macro(qt_push_features_into_parent_scope) list (SORT _variableNames) list(REMOVE_DUPLICATES _variableNames) - foreach(_var ${_variableNames}) + foreach(_var IN ITEMS ${_variableNames}) if(_var MATCHES "^QT_FEATURE_[a-z][a-z0-9_]*$") set("${_var}" "${${_var}}" PARENT_SCOPE) endif() @@ -445,8 +446,8 @@ macro(qt_push_features_into_parent_scope) endmacro() macro(qt_load_global_features) - if(NOT TARGET Qt::Core) - find_package(Qt${PROJECT_VERSION_MAJOR}Core QUIET) + if(NOT TARGET Qt::GlobalConfig) + find_package(Qt${PROJECT_VERSION_MAJOR}GlobalConfig QUIET) endif() - qt_pull_features_into_current_scope(PUBLIC_FEATURES PRIVATE_FEATURES FEATURE_PROPERTY_INFIX "GLOBAL_" Qt::Core) + qt_pull_features_into_current_scope(PUBLIC_FEATURES PRIVATE_FEATURES Qt::GlobalConfig) endmacro() |