summaryrefslogtreecommitdiffstats
path: root/cmake/Functions.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Functions.cmake')
-rw-r--r--cmake/Functions.cmake71
1 files changed, 38 insertions, 33 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 4f342eb2d..516ae79fc 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -1,19 +1,22 @@
-function(assertTargets errorResult supportResult)
- if(NOT DEFINED ${supportResult})
- set(${supportResult} ON PARENT_SCOPE)
- set(${supportResult} ON)
- endif()
- if(${${supportResult}})
- list(REMOVE_ITEM ARGN ${errorResult})
- list(REMOVE_ITEM ARGN ${supportResult})
- foreach(qtTarget IN ITEMS ${ARGN})
- if(NOT TARGET Qt::${qtTarget})
- set(${errorResult} "Missing required Qt::${qtTarget}." PARENT_SCOPE)
- set(${supportResult} OFF PARENT_SCOPE)
- return()
- endif()
- endforeach()
- endif()
+function(assertTargets)
+ qt_parse_all_arguments(arg "add_check_for_support"
+ "" "" "MODULES;TARGETS" "${ARGN}"
+ )
+ foreach(module ${arg_MODULES})
+ if(NOT DEFINED ${module}_SUPPORT)
+ set(${module}_SUPPORT ON PARENT_SCOPE)
+ set(${module}_SUPPORT ON)
+ endif()
+ if(${module}_SUPPORT)
+ foreach(qtTarget ${arg_TARGETS})
+ if(NOT TARGET Qt::${qtTarget})
+ set(${module}_ERROR "Missing required Qt::${qtTarget}." PARENT_SCOPE)
+ set(${module}_SUPPORT OFF PARENT_SCOPE)
+ break()
+ endif()
+ endforeach()
+ endif()
+ endforeach()
endfunction()
function(add_implicit_dependencies target)
@@ -27,29 +30,31 @@ function(add_implicit_dependencies target)
endif()
endfunction()
-
# TODO: this should be idealy in qtbase
-function(add_check_for_support errorResult supportResult)
- if(NOT DEFINED ${supportResult})
- set(${supportResult} ON PARENT_SCOPE)
- set(${supportResult} ON)
- endif()
- if(${${supportResult}})
- qt_parse_all_arguments(arg "add_check_for_support"
- "" "MODULE" "MESSAGE;CONDITION" "${ARGN}")
- if("x${arg_CONDITION}" STREQUAL x)
- set(arg_CONDITION ON)
+function(add_check_for_support)
+ qt_parse_all_arguments(arg "add_check_for_support"
+ "" "" "MODULES;MESSAGE;CONDITION" "${ARGN}"
+ )
+ foreach(module ${arg_MODULES})
+ if(NOT DEFINED ${module}_SUPPORT)
+ set(${module}_SUPPORT ON PARENT_SCOPE)
+ set(${module}_SUPPORT ON)
endif()
- qt_evaluate_config_expression(result ${arg_CONDITION})
- if(NOT ${result})
- set(${supportResult} OFF PARENT_SCOPE)
- set(${errorResult} ${arg_MESSAGE} PARENT_SCOPE)
+ if(${module}_SUPPORT)
+ if("x${arg_CONDITION}" STREQUAL x)
+ set(arg_CONDITION ON)
+ endif()
+ qt_evaluate_config_expression(result ${arg_CONDITION})
+ if(NOT ${result})
+ set(${module}_SUPPORT OFF PARENT_SCOPE)
+ set(${module}_ERROR ${arg_MESSAGE} PARENT_SCOPE)
qt_configure_add_report_entry(TYPE WARNING
- MESSAGE "${arg_MODULE} won't be built. ${arg_MESSAGE}"
+ MESSAGE "${module} won't be built. ${arg_MESSAGE}"
CONDITION ON
)
+ endif()
endif()
- endif()
+ endforeach()
endfunction()
function(get_qt_features outList module)