summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-07-09 19:24:15 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-08-18 05:28:15 +0000
commit649a3238f91921e3f38f8e91e49f97a02655c94d (patch)
tree99d24b2a7df5c31096e49a62c9d9a6781389d4c0 /cmake
parent4245e8c147f3bc3512352b73462774c042426e81 (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.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)