summaryrefslogtreecommitdiffstats
path: root/cmake/QtFeature.cmake
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2019-01-10 10:50:38 +0100
committerTobias Hunger <tobias.hunger@qt.io>2019-01-17 08:33:27 +0000
commit4f26758978e84f959a28d90b2ff336bae32a2d3f (patch)
tree056a6c261a0dd79696a36ea5f962a9b8aa8ac27e /cmake/QtFeature.cmake
parentb705021b4eaed1e61d39dc481fd5373722c6f460 (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.cmake15
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()