diff options
Diffstat (limited to 'src/core/api/configure.cmake')
-rw-r--r-- | src/core/api/configure.cmake | 120 |
1 files changed, 97 insertions, 23 deletions
diff --git a/src/core/api/configure.cmake b/src/core/api/configure.cmake index e79bbbae3..f8488c057 100644 --- a/src/core/api/configure.cmake +++ b/src/core/api/configure.cmake @@ -1,13 +1,24 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + #### Libraries if(NOT QT_CONFIGURE_RUNNING) + find_package(GLIB2 COMPONENTS GIO) + find_package(GSSAPI) find_package(PkgConfig) - if(PkgConfig_FOUND) + if(PkgConfig_FOUND AND QT_FEATURE_pkg_config) pkg_check_modules(ALSA alsa IMPORTED_TARGET) pkg_check_modules(PULSEAUDIO libpulse>=0.9.10 libpulse-mainloop-glib) - pkg_check_modules(GIO gio-2.0) pkg_check_modules(XDAMAGE xdamage) + pkg_check_modules(POPPLER_CPP poppler-cpp IMPORTED_TARGET) + pkg_check_modules(GBM gbm) + pkg_check_modules(LIBVA libva>=1.14) + if(NOT GIO_FOUND) + pkg_check_modules(GIO gio-2.0) + endif() endif() + find_package(Cups) find_package(Qt6 ${PROJECT_VERSION} CONFIG QUIET OPTIONAL_COMPONENTS Positioning WebChannel PrintSupport) @@ -15,6 +26,19 @@ endif() #### Tests +qt_config_compile_test(poppler + LABEL "poppler" + LIBRARIES + PkgConfig::POPPLER_CPP + CODE +" +#include <poppler-document.h> + +int main() { + auto *pdf = poppler::document::load_from_raw_data(\"file\",100,std::string(\"user\")); +}" +) + qt_config_compile_test(alsa LABEL "alsa" LIBRARIES @@ -40,9 +64,9 @@ qt_feature("webengine-system-alsa" PRIVATE LABEL "Use ALSA" CONDITION UNIX AND TEST_alsa ) -qt_feature("webengine-v8-snapshot-support" PRIVATE - LABEL "Building v8 snapshot supported" - CONDITION NOT UNIX OR NOT QT_FEATURE_cross_compile OR ( TEST_architecture_arch STREQUAL arm64 ) OR TEST_webengine_host_compiler +qt_feature("webengine-v8-context-snapshot" PRIVATE + LABEL "Use v8 context snapshot" + AUTODETECT NOT CMAKE_CROSSCOMPILING ) qt_feature("webengine-geolocation" PUBLIC LABEL "Geolocation" @@ -53,16 +77,23 @@ qt_feature("webengine-system-pulseaudio" PRIVATE AUTODETECT UNIX CONDITION PULSEAUDIO_FOUND ) -qt_feature("webengine-pepper-plugins" PRIVATE - LABEL "Pepper Plugins" - PURPOSE "Enables use of Pepper Flash plugins." - AUTODETECT NOT QT_FEATURE_webengine_embedded_build +qt_feature("webengine-system-gbm" PRIVATE + SECTION "WebEngine" + LABEL "Use system GBM" + AUTODETECT UNIX + CONDITION GBM_FOUND ) qt_feature("webengine-printing-and-pdf" PRIVATE LABEL "Printing and PDF" PURPOSE "Provides printing and output to PDF." AUTODETECT NOT QT_FEATURE_webengine_embedded_build - CONDITION TARGET Qt::PrintSupport AND QT_FEATURE_printer + CONDITION TARGET Qt::PrintSupport AND QT_FEATURE_printer AND + (CUPS_FOUND OR WIN32) +) +qt_feature("webengine-pepper-plugins" PRIVATE + LABEL "Pepper Plugins" + PURPOSE "Enables use of Pepper plugins." + AUTODETECT QT_FEATURE_webengine_printing_and_pdf ) qt_feature("webengine-webchannel" PUBLIC SECTION "WebEngine" @@ -81,6 +112,7 @@ qt_feature("webengine-kerberos" PRIVATE LABEL "Kerberos Authentication" PURPOSE "Enables Kerberos Authentication Support" AUTODETECT WIN32 + CONDITION NOT LINUX OR GSSAPI_FOUND ) qt_feature("webengine-spellchecker" PUBLIC LABEL "Spellchecker" @@ -90,14 +122,14 @@ qt_feature("webengine-native-spellchecker" PUBLIC LABEL "Native Spellchecker" PURPOSE "Use the system's native spellchecking engine." AUTODETECT OFF - CONDITION MACOS AND QT_FEATURE_webengine_spellchecker + CONDITION QT_FEATURE_webengine_spellchecker AND NOT LINUX ) qt_feature("webengine-extensions" PUBLIC SECTION "WebEngine" LABEL "Extensions" - PURPOSE "Enables Chromium extensions within certain limits. Currently used for enabling the pdf viewer." - AUTODETECT QT_FEATURE_webengine_printing_and_pdf - CONDITION QT_FEATURE_webengine_printing_and_pdf + PURPOSE "Enables Chromium extensions within certain limits. Currently used by the pdf viewer and hangout webrtc extension." + AUTODETECT ON + CONDITION QT_FEATURE_webengine_printing_and_pdf OR QT_FEATURE_webengine_webrtc ) qt_feature("webengine-webrtc" PRIVATE LABEL "WebRTC" @@ -126,6 +158,34 @@ qt_feature("webengine-sanitizer" PRIVATE AUTODETECT CLANG CONDITION CLANG AND ECM_ENABLE_SANITIZERS ) +qt_feature("webengine-vulkan" PRIVATE + SECTION "WebEngine" + LABEL "Vulkan support" + PURPOSE "Enables support for Vulkan rendering" + CONDITION QT_FEATURE_vulkan +) +qt_feature("webengine-vaapi" PRIVATE + SECTION "WebEngine" + LABEL "VA-API support" + PURPOSE "Enables support for VA-API hardware acceleration" + AUTODETECT GBM_FOUND AND LIBVA_FOUND AND QT_FEATURE_vulkan + # hardware accelerated encoding requires bundled libvpx + CONDITION LINUX AND NOT QT_FEATURE_webengine_system_libvpx +) +list(LENGTH CMAKE_OSX_ARCHITECTURES osx_arch_count) +qt_feature("webenginedriver" PUBLIC + SECTION "WebEngine" + LABEL "Build WebEngineDriver" + PURPOSE "Enables WebEngineDriver build" + CONDITION NOT CMAKE_CROSSCOMPILING + AND NOT (CMAKE_OSX_ARCHITECTURES AND osx_arch_count GREATER 1) + DISABLE CMAKE_BUILD_TYPE STREQUAL Debug +) +# internal testing feature +qt_feature("webengine-system-poppler" PRIVATE + LABEL "poppler" + CONDITION UNIX AND TEST_poppler +) qt_configure_add_summary_section(NAME "Qt WebEngineCore") qt_configure_add_summary_entry(ARGS "webengine-embedded-build") qt_configure_add_summary_entry(ARGS "webengine-full-debug-info") @@ -134,7 +194,10 @@ qt_configure_add_summary_entry(ARGS "webengine-pepper-plugins") qt_configure_add_summary_entry(ARGS "webengine-printing-and-pdf") qt_configure_add_summary_entry(ARGS "webengine-proprietary-codecs") qt_configure_add_summary_entry(ARGS "webengine-spellchecker") -qt_configure_add_summary_entry(ARGS "webengine-native-spellchecker") +qt_configure_add_summary_entry( + ARGS "webengine-native-spellchecker" + CONDITION NOT LINUX +) qt_configure_add_summary_entry(ARGS "webengine-webrtc") qt_configure_add_summary_entry(ARGS "webengine-webrtc-pipewire") qt_configure_add_summary_entry(ARGS "webengine-geolocation") @@ -146,17 +209,23 @@ qt_configure_add_summary_entry( CONDITION UNIX ) qt_configure_add_summary_entry( - ARGS "webengine-v8-snapshot-support" - CONDITION UNIX AND cross_compile + ARGS "webengine-vulkan" + CONDITION QT_FEATURE_vulkan +) +qt_configure_add_summary_entry( + ARGS "webengine-vaapi" + CONDITION LINUX ) qt_configure_add_summary_entry( ARGS "webengine-system-alsa" - CONDITION UNIX + CONDITION LINUX ) qt_configure_add_summary_entry( ARGS "webengine-system-pulseaudio" - CONDITION UNIX + CONDITION LINUX ) +qt_configure_add_summary_entry(ARGS "webengine-v8-context-snapshot") +qt_configure_add_summary_entry(ARGS "webenginedriver") qt_configure_end_summary_section() # end of "Qt WebEngineCore" section if(CMAKE_CROSSCOMPILING) check_thumb(armThumb) @@ -171,11 +240,16 @@ if(CMAKE_CROSSCOMPILING) endif() qt_configure_add_report_entry( TYPE WARNING - MESSAGE "V8 snapshot cannot be built. Most likely, the 32-bit host compiler does not work. Please make sure you have 32-bit devel environment installed." - CONDITION UNIX AND cross_compile AND NOT QT_FEATURE_webengine_v8_snapshot_support + MESSAGE "WebRTC requires XDamage with qpa_xcb." + CONDITION QT_FEATURE_webengine_ozone_x11 AND NOT XDAMAGE_FOUND ) qt_configure_add_report_entry( TYPE WARNING - MESSAGE "WebRTC requires XDamage with qpa_xcb." - CONDITION QT_FEATURE_webengine_ozone_x11 AND NOT XDAMAGE_FOUND + MESSAGE "VA-API is incompatible with system libvpx." + CONDITION QT_FEATURE_webengine_system_libvpx AND QT_FEATURE_webengine_vaapi +) +qt_configure_add_report_entry( + TYPE WARNING + MESSAGE "System GBM is disabled. The bundled minigbm supports Intel only, you might need to install libgbm to avoid rendering issues." + CONDITION LINUX AND NOT QT_FEATURE_webengine_system_gbm ) |