diff options
author | Michal Klocek <michal.klocek@qt.io> | 2021-07-09 19:24:15 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-08-18 05:28:15 +0000 |
commit | 649a3238f91921e3f38f8e91e49f97a02655c94d (patch) | |
tree | 99d24b2a7df5c31096e49a62c9d9a6781389d4c0 /cmake | |
parent | 4245e8c147f3bc3512352b73462774c042426e81 (diff) |
Add QtPdf to cmake build
Port QtPdf to Qt6:
* QtPdf,QtPdfWidgets,QtPdfQuick libs
* QtPdfQuickPlugin, QtPdfPlugin (imageformat) plugins
* widget and quick examples
* qtpdf tests
To fit gn cmake integration and new repo layout code is a bit
reshuffled.
Compared to qmke build following features are not ported yet:
* ios fat libs
* qtbase 3rdparty static dependencies
WebEngine build can be skipped with setting
QT_FEATURE_qtwebengine_build=OFF
Note this patch needs follow up for 6.2 branch to disable qtpdf
builds by default, since this should not part of qt 6.2 release.
Task-number: QTBUG-95353
Change-Id: I4dd9f3934bdd478fb6d2fa686074a24d91f09953
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 79d04aa9e3e9aa84d7378260519f9e9a6759dc41)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Functions.cmake | 71 |
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) |