diff options
Diffstat (limited to 'configure.cmake')
-rw-r--r-- | configure.cmake | 719 |
1 files changed, 719 insertions, 0 deletions
diff --git a/configure.cmake b/configure.cmake new file mode 100644 index 000000000..2d826e6dd --- /dev/null +++ b/configure.cmake @@ -0,0 +1,719 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +if(QT_CONFIGURE_RUNNING) + function(assertTargets) + endfunction() + function(add_check_for_support) + endfunction() + function(check_for_ulimit) + endfunction() +else() + find_package(Ninja 1.7.2) + find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT) + find_program(Python3_EXECUTABLE NAMES python3 python HINTS $ENV{PYTHON3_PATH}) + if(NOT Python3_EXECUTABLE) + find_package(Python3 3.6) + endif() + find_package(GPerf) + find_package(BISON) + find_package(FLEX) + find_package(Perl) + find_package(PkgConfig) + find_package(Snappy) + find_package(Nodejs 14.0) +endif() + +if(PkgConfig_FOUND) + pkg_check_modules(DBUS dbus-1) + pkg_check_modules(FONTCONFIG fontconfig) + pkg_check_modules(LIBDRM libdrm) + pkg_check_modules(XCOMPOSITE xcomposite) + pkg_check_modules(XCURSOR xcursor) + pkg_check_modules(XI xi) + pkg_check_modules(XRANDR xrandr) + pkg_check_modules(XSHMFENCE xshmfence) + pkg_check_modules(XTST xtst) + pkg_check_modules(NSS nss>=3.26) + pkg_check_modules(X11 x11) + pkg_check_modules(XPROTO glproto) + pkg_check_modules(GLIB glib-2.0>=2.32.0) + pkg_check_modules(HARFBUZZ harfbuzz>=4.3.0 harfbuzz-subset>=4.3.0) + pkg_check_modules(JPEG libjpeg IMPORTED_TARGET) + pkg_check_modules(LIBEVENT libevent) + pkg_check_modules(MINIZIP minizip) + pkg_check_modules(PNG libpng>=1.6.0) + pkg_check_modules(TIFF libtiff-4>=4.2.0) + pkg_check_modules(ZLIB zlib) + # TODO: chromium may replace base::StringView with std::string_view. See: crbug.com/691162 + pkg_check_modules(RE2 re2>=11.0.0 IMPORTED_TARGET) + pkg_check_modules(ICU icu-uc>=70 icu-i18n>=70) + pkg_check_modules(WEBP libwebp libwebpmux libwebpdemux) + pkg_check_modules(LCMS2 lcms2) + pkg_check_modules(FREETYPE freetype2 IMPORTED_TARGET) + pkg_check_modules(LIBXML2 libxml-2.0 libxslt IMPORTED_TARGET) + pkg_check_modules(FFMPEG libavcodec libavformat libavutil IMPORTED_TARGET) + pkg_check_modules(OPUS opus>=1.3.1) + pkg_check_modules(VPX vpx>=1.10.0 IMPORTED_TARGET) + pkg_check_modules(LIBPCI libpci) + pkg_check_modules(LIBOPENJP2 libopenjp2) +endif() + +if(Python3_EXECUTABLE) + execute_process( + COMMAND ${Python3_EXECUTABLE} -c "import html5lib" + RESULT_VARIABLE html5lib_NOT_FOUND + OUTPUT_QUIET + ) +endif() + +#### Tests +if(LINUX) + check_for_ulimit() +endif() + +qt_config_compile_test(re2 + LABEL "re2" + LIBRARIES + PkgConfig::RE2 + CODE +" +#include \"re2/filtered_re2.h\" +#include <vector> +int main() { + std::string s; + re2::FilteredRE2 fre2(1); + int id = 0; + fre2.Add(s, {}, &id); + std::vector<std::string> pattern = {\"match\"}; + fre2.Compile(&pattern); + const RE2 &re2 = fre2.GetRE2(id); +}" +) + +qt_config_compile_test(vpx + LABEL "vpx" + LIBRARIES + PkgConfig::VPX + CODE +" +#include \"vpx/vpx_encoder.h\" +#include \"vpx/vp8cx.h\" +#include \"vpx/vpx_image.h\" +int main() { + vpx_codec_cx_pkt pkt; + pkt.data.frame.width[0] = 0u; + pkt.data.frame.height[0] = 0u; + auto a = CONSTRAINED_FROM_ABOVE_DROP; + auto b = VPX_IMG_FMT_NV12; + auto v9 = vpx_codec_vp9_cx(); +}" +) + +qt_config_compile_test(snappy + LABEL "snappy" + LIBRARIES + Snappy::Snappy + CODE +" +#include \"snappy.h\" +int main() { + snappy::Source *src = 0; + snappy::Sink *sink = 0; + return 0; +}" +) + +qt_config_compile_test(libxml2 + LABEL "compatible libxml2 and libxslt" + LIBRARIES + PkgConfig::LIBXML2 + CODE +" +#include \"libxml/xmlversion.h\" +#if !defined(LIBXML_ICU_ENABLED) +#error libxml icu not enabled +#endif +int main() { + return 0; +}" +) + +qt_config_compile_test(jpeg + LABEL "compatible libjpeg" + LIBRARIES + PkgConfig::JPEG + CODE +" +#include <cstdio> +#include <cstring> +extern \"C\" { + #include <jpeglib.h> +} +int main() { + JDIMENSION dummy; + jpeg_crop_scanline(nullptr, &dummy, &dummy); + jpeg_skip_scanlines(nullptr, dummy); +}" +) + +qt_config_compile_test(freetype + LABEL "freetype >= 2.4.2" + LIBRARIES + PkgConfig::FREETYPE + CODE +" +#include <ft2build.h> +#include FT_FREETYPE_H +#if ((FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) < 20402) +# error This version of freetype is too old. +#endif +int main() { + FT_Face ft_face = 0; + FT_Reference_Face(ft_face); + return 0; +}" +) + +qt_config_compile_test(glibc + LABEL "glibc > 2.16" + CODE +" +#include <features.h> +#if __GLIBC__ < 2 || __GLIBC_MINOR__ < 17 +#error glibc versions below 2.17 are not supported +#endif +int main(void) { + return 0; +}" +) + +qt_config_compile_test(khr + LABEL "khr" + CODE +" +#include <KHR/khrplatform.h> +int main(void) { + return 0; +}" +) + +qt_config_compile_test(libavformat + LABEL "libavformat" + LIBRARIES + PkgConfig::FFMPEG + CODE +" +#include \"libavformat/version.h\" +extern \"C\" { +#include \"libavformat/avformat.h\" +} +int main(void) { +#if LIBAVFORMAT_VERSION_MAJOR >= 59 + AVStream stream; + auto first_dts = av_stream_get_first_dts(&stream); +#endif + return 0; +}" +) + +#### Features + +qt_feature("qtwebengine-build" PUBLIC + LABEL "Build QtWebEngine Modules" + PURPOSE "Enables building the Qt WebEngine modules." +) +qt_feature("qtwebengine-core-build" PRIVATE + LABEL "Build QtWebEngineCore" + PURPOSE "Enables building the Qt WebEngineCore module." + CONDITION QT_FEATURE_qtwebengine_build +) +qt_feature("qtwebengine-widgets-build" PRIVATE + LABEL "Build QtWebEngineWidgets" + PURPOSE "Enables building the Qt WebEngineWidgets module." + CONDITION TARGET Qt::Widgets AND QT_FEATURE_qtwebengine_build +) +qt_feature("qtwebengine-quick-build" PRIVATE + LABEL "Build QtWebEngineQuick" + PURPOSE "Enables building the Qt WebEngineQuick module." + CONDITION TARGET Qt::Quick AND TARGET Qt::Qml AND QT_FEATURE_qtwebengine_build +) +qt_feature("qtpdf-build" PUBLIC + LABEL "Build Qt PDF" + PURPOSE "Enables building the Qt Pdf modules." +) +qt_feature("qtpdf-widgets-build" PRIVATE + LABEL "Build QtPdfWidgets" + PURPOSE "Enables building the Qt Pdf module." + CONDITION TARGET Qt::Widgets AND QT_FEATURE_qtpdf_build +) +qt_feature("qtpdf-quick-build" PRIVATE + LABEL "Build QtPdfQuick" + PURPOSE "Enables building the QtPdfQuick module." + CONDITION TARGET Qt::Quick AND TARGET Qt::Qml AND QT_FEATURE_qtpdf_build AND + Qt6Quick_VERSION VERSION_GREATER_EQUAL "6.4.0" +) + +function(qtwebengine_internal_is_file_inside_root_build_dir out_var file) + set(result ON) + if(NOT QT_CONFIGURE_RUNNING) + file(RELATIVE_PATH relpath "${WEBENGINE_ROOT_BUILD_DIR}" "${file}") + if(IS_ABSOLUTE "${relpath}" OR relpath MATCHES "^\\.\\./") + set(result OFF) + endif() + endif() + set(${out_var} ${result} PARENT_SCOPE) +endfunction() + +if(Ninja_FOUND) + qtwebengine_internal_is_file_inside_root_build_dir( + Ninja_INSIDE_WEBENGINE_ROOT_BUILD_DIR "${Ninja_EXECUTABLE}") +endif() +qt_feature("webengine-build-ninja" PRIVATE + LABEL "Build Ninja" + AUTODETECT NOT Ninja_FOUND OR Ninja_INSIDE_WEBENGINE_ROOT_BUILD_DIR +) + +if(Gn_FOUND) + qtwebengine_internal_is_file_inside_root_build_dir( + Gn_INSIDE_WEBENGINE_ROOT_BUILD_DIR "${Gn_EXECUTABLE}") +endif() +qt_feature("webengine-build-gn" PRIVATE + LABEL "Build Gn" + AUTODETECT NOT Gn_FOUND OR Gn_INSIDE_WEBENGINE_ROOT_BUILD_DIR +) +# default assumed merge limit (should match the one in qt_cmdline.cmake) +set(jumbo_merge_limit 8) +# check value provided through configure script with -webengine-jumbo-build=(on|off|32) +if(DEFINED INPUT_webengine_jumbo_file_merge_limit) + set(jumbo_merge_limit ${INPUT_webengine_jumbo_file_merge_limit}) +# then also verify if set directly with cmake call and -DFEATURE_webengine_jumbo_build=(ON|OFF|32) +elseif(DEFINED FEATURE_webengine_jumbo_build) + if(FEATURE_webengine_jumbo_build GREATER 0) + set(jumbo_merge_limit ${FEATURE_webengine_jumbo_build}) + elseif (NOT FEATURE_webengine_jumbo_build) + set(jumbo_merge_limit 0) + endif() +endif() +set(QT_FEATURE_webengine_jumbo_file_merge_limit ${jumbo_merge_limit} + CACHE STRING "Jumbo merge limit for WebEngineCore" FORCE) +qt_feature("webengine-jumbo-build" PUBLIC + LABEL "Jumbo Build" + PURPOSE "Enables support for jumbo build of core library" + AUTODETECT FALSE + ENABLE jumbo_merge_limit GREATER 0 +) +qt_feature("webengine-developer-build" PRIVATE + LABEL "Developer build" + PURPOSE "Enables the developer build configuration." + AUTODETECT QT_FEATURE_private_tests +) +qt_feature("webengine-system-re2" PRIVATE + LABEL "re2" + CONDITION UNIX AND TEST_re2 +) +qt_feature("webengine-system-icu" PRIVATE + LABEL "icu" + AUTODETECT FALSE + CONDITION ICU_FOUND +) +qt_feature("webengine-system-libwebp" PRIVATE + LABEL "libwebp, libwebpmux and libwebpdemux" + CONDITION UNIX AND WEBP_FOUND +) +qt_feature("webengine-system-libopenjpeg2" PRIVATE + LABEL "libopenjpeg2" + CONDITION UNIX AND LIBOPENJP2_FOUND +) +qt_feature("webengine-system-opus" PRIVATE + LABEL "opus" + CONDITION UNIX AND OPUS_FOUND +) +qt_feature("webengine-system-ffmpeg" PRIVATE + LABEL "ffmpeg" + AUTODETECT FALSE + CONDITION FFMPEG_FOUND AND QT_FEATURE_webengine_system_opus AND QT_FEATURE_webengine_system_libwebp +) +qt_feature("webengine-system-libvpx" PRIVATE + LABEL "libvpx" + AUTODETECT FALSE + CONDITION UNIX AND TEST_vpx +) +qt_feature("webengine-system-snappy" PRIVATE + LABEL "snappy" + CONDITION UNIX AND TEST_snappy +) +qt_feature("webengine-system-glib" PRIVATE + LABEL "glib" + CONDITION UNIX AND GLIB_FOUND +) +qt_feature("webengine-system-zlib" PRIVATE + LABEL "zlib" + CONDITION UNIX AND QT_FEATURE_system_zlib AND ZLIB_FOUND +) +qt_feature("webengine-qt-zlib" PRIVATE + LABEL "qtzlib" + CONDITION QT_FEATURE_static + AND TARGET Qt::Gui + AND NOT QT_FEATURE_system_zlib +) +qt_feature("webengine-system-minizip" PRIVATE + LABEL "minizip" + CONDITION UNIX AND MINIZIP_FOUND +) +qt_feature("webengine-system-libevent" PRIVATE + LABEL "libevent" + CONDITION UNIX AND LIBEVENT_FOUND +) +qt_feature("webengine-system-libxml" PRIVATE + LABEL "libxml2 and libxslt" + CONDITION UNIX AND TEST_libxml2 +) +qt_feature("webengine-system-lcms2" PRIVATE + LABEL "lcms2" + CONDITION UNIX AND LCMS2_FOUND +) +qt_feature("webengine-system-libpng" PRIVATE + LABEL "png" + CONDITION UNIX AND TARGET Qt::Gui AND PNG_FOUND AND QT_FEATURE_system_png +) +qt_feature("webengine-system-libtiff" PRIVATE + LABEL "tiff" + CONDITION UNIX AND TARGET Qt::Gui AND TIFF_FOUND +) +qt_feature("webengine-qt-libpng" PRIVATE + LABEL "qtpng" + CONDITION QT_FEATURE_static + AND TARGET Qt::Gui + AND QT_FEATURE_png + AND NOT QT_FEATURE_system_png +) +qt_feature("webengine-system-libjpeg" PRIVATE + LABEL "jpeg" + CONDITION UNIX AND TARGET Qt::Gui AND TEST_jpeg AND QT_FEATURE_system_jpeg +) +qt_feature("webengine-qt-libjpeg" PRIVATE + LABEL "qtjpeg" + CONDITION QT_FEATURE_static + AND TARGET Qt::Gui + AND QT_FEATURE_jpeg + AND NOT QT_FEATURE_system_jpeg +) +qt_feature("webengine-system-harfbuzz" PRIVATE + LABEL "harfbuzz" + CONDITION UNIX AND TARGET Qt::Gui AND HARFBUZZ_FOUND AND QT_FEATURE_system_harfbuzz +) +qt_feature("webengine-qt-harfbuzz" PRIVATE + LABEL "qtharfbuzz" + CONDITION QT_FEATURE_static + AND TARGET Qt::Gui + AND QT_FEATURE_harfbuzz + AND NOT QT_FEATURE_system_harfbuzz +) +qt_feature("webengine-system-freetype" PRIVATE + LABEL "freetype" + CONDITION UNIX AND TARGET Qt::Gui AND TEST_freetype AND QT_FEATURE_system_freetype +) +qt_feature("webengine-qt-freetype" PRIVATE + LABEL "qtfreetype" + CONDITION QT_FEATURE_static + AND TARGET Qt::Gui + AND QT_FEATURE_freetype + AND NOT QT_FEATURE_system_freetype +) +qt_feature("webengine-system-libpci" PRIVATE + LABEL "libpci" + CONDITION UNIX AND LIBPCI_FOUND +) + +qt_feature("webengine-ozone-x11" PRIVATE + LABEL "Support GLX on qpa-xcb" + CONDITION LINUX + AND TARGET Qt::Gui + AND QT_FEATURE_xcb + AND X11_FOUND + AND LIBDRM_FOUND + AND XCOMPOSITE_FOUND + AND XCURSOR_FOUND + AND XI_FOUND + AND XPROTO_FOUND + AND XRANDR_FOUND + AND XTST_FOUND + AND XSHMFENCE_FOUND +) + +#### Support Checks +if(WIN32 AND (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64" + OR CMAKE_CROSSCOMPILING)) + set(WIN_ARM_64 ON) +else() + set(WIN_ARM_64 OFF) +endif() + +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION + CMAKE_VERSION + VERSION_GREATER_EQUAL + ${QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_BUILDING_WEBENGINE} + MESSAGE + "Build requires CMake ${QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_BUILDING_WEBENGINE} or higher." +) + +assertTargets( + MODULES QtWebEngine QtPdf + TARGETS Gui Quick Qml +) +add_check_for_support( + MODULES QtWebEngine + CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS + MESSAGE "Build can be done only on Linux, Windows or macOS." +) +add_check_for_support( + MODULES QtPdf + CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR ANDROID + MESSAGE "Build can be done only on Linux, Windows, macO, iOS and Android." +) +if(LINUX AND CMAKE_CROSSCOMPILING) + set(supportedTargets "arm" "arm64" "armv7-a" "x86_64") + add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION TEST_architecture_arch IN_LIST supportedTargets + MESSAGE "Cross compiling is not supported for ${TEST_architecture_arch}." + ) + unset(supportedTargets) +endif() +add_check_for_support( + MODULES QtWebEngine + CONDITION NOT QT_FEATURE_static + MESSAGE "Static build is not supported." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION TARGET Nodejs::Nodejs + MESSAGE "node.js version 14 or later is required." +) +add_check_for_support( + MODULES QtWebEngine + CONDITION NOT (Nodejs_ARCH STREQUAL "ia32") AND + NOT (Nodejs_ARCH STREQUAL "x86") AND + NOT (Nodejs_ARCH STREQUAL "arm") + MESSAGE "32bit version of Nodejs is not supported." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION Python3_EXECUTABLE + MESSAGE "Python version 3.6 or later is required." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION Python3_EXECUTABLE AND NOT html5lib_NOT_FOUND + MESSAGE "Python3 html5lib is missing." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION GPerf_FOUND + MESSAGE "Tool gperf is required." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION BISON_FOUND + MESSAGE "Tool bison is required." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION FLEX_FOUND + MESSAGE "Tool flex is required." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION NOT LINUX OR PkgConfig_FOUND + MESSAGE "A pkg-config support is required." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION NOT LINUX OR TEST_glibc + MESSAGE "A suitable version >= 2.17 of glibc is required." +) +add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION NOT LINUX OR TEST_khr + MESSAGE "Build requires Khronos development headers for build - see mesa/libegl1-mesa-dev" +) +add_check_for_support( + MODULES QtWebEngine + CONDITION NOT LINUX OR FONTCONFIG_FOUND + MESSAGE "Build requires fontconfig." +) +add_check_for_support( + MODULES QtWebEngine + CONDITION NOT LINUX OR NSS_FOUND + MESSAGE "Build requires nss >= 3.26." +) +add_check_for_support( + MODULES QtWebEngine + CONDITION NOT LINUX OR DBUS_FOUND + MESSAGE "Build requires dbus." +) +add_check_for_support( + MODULES QtWebEngine + CONDITION NOT LINUX OR NOT QT_FEATURE_webengine_system_ffmpeg OR TEST_libavformat + MESSAGE "Unmodified ffmpeg >= 5.0 is not supported." +) + +add_check_for_support( + MODULES QtWebEngine + CONDITION MSVC OR + (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR + (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR + (MACOS AND CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") + MESSAGE + "${CMAKE_CXX_COMPILER_ID} compiler is not supported." +) + +add_check_for_support( + MODULES QtPdf + CONDITION MSVC OR + (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR + (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR + (APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") OR + (ANDROID AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR + (MINGW AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR + (MINGW AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + MESSAGE + "${CMAKE_CXX_COMPILER_ID} compiler is not supported." +) +if(WIN32) + if(MSVC) + if(MSVC_TOOLSET_VERSION EQUAL 142) # VS 2019 (16.0) + add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION NOT MSVC_VERSION LESS 1929 + MESSAGE "VS compiler version must be at least 14.29" + ) + elseif(MSVC_TOOLSET_VERSION EQUAL 143) # VS 2022 (17.0) + add_check_for_support( + MODULES QtWebEngine QtPdf + CONDITION NOT MSVC_VERSION LESS 1936 + MESSAGE "VS compiler version must be at least 14.36" + ) + else() + message(FATAL_ERROR "Build requires Visual Studio 2019 or higher.") + endif() + endif() + set(windowsSdkVersion $ENV{WindowsSDKVersion}) + string(REGEX REPLACE "([0-9.]+).*" "\\1" windowsSdkVersion "${windowsSdkVersion}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" sdkMinor "${windowsSdkVersion}") + message("-- Windows 10 SDK version: ${windowsSdkVersion}") + add_check_for_support( + MODULES QtWebEngine + CONDITION sdkMinor GREATER_EQUAL 22621 + MESSAGE "Build requires Windows 11 SDK at least version 10.0.22621.0" + ) +endif() + +#### Summary + +# > Qt WebEngine Build Features +qt_configure_add_summary_section(NAME "WebEngine Repository Build Options") +qt_configure_add_summary_entry(ARGS "webengine-build-ninja") +qt_configure_add_summary_entry(ARGS "webengine-build-gn") +qt_configure_add_summary_entry(ARGS "webengine-jumbo-build") +qt_configure_add_summary_entry(ARGS "webengine-developer-build") +qt_configure_add_summary_section(NAME "Build QtWebEngine Modules") +qt_configure_add_summary_entry(ARGS "qtwebengine-core-build") +qt_configure_add_summary_entry(ARGS "qtwebengine-widgets-build") +qt_configure_add_summary_entry(ARGS "qtwebengine-quick-build") +qt_configure_end_summary_section() +qt_configure_add_summary_section(NAME "Build QtPdf Modules") +qt_configure_add_summary_entry(ARGS "qtpdf-widgets-build") +qt_configure_add_summary_entry(ARGS "qtpdf-quick-build") +qt_configure_end_summary_section() +# >> Optional system libraries +if(UNIX) + qt_configure_add_summary_section(NAME "Optional system libraries") + qt_configure_add_summary_entry(ARGS "webengine-system-re2") + qt_configure_add_summary_entry(ARGS "webengine-system-icu") + qt_configure_add_summary_entry(ARGS "webengine-system-libwebp") + qt_configure_add_summary_entry(ARGS "webengine-system-opus") + qt_configure_add_summary_entry(ARGS "webengine-system-ffmpeg") + qt_configure_add_summary_entry(ARGS "webengine-system-libvpx") + qt_configure_add_summary_entry(ARGS "webengine-system-snappy") + qt_configure_add_summary_entry(ARGS "webengine-system-glib") + qt_configure_add_summary_entry(ARGS "webengine-system-zlib") + qt_configure_add_summary_entry(ARGS "webengine-system-minizip") + qt_configure_add_summary_entry(ARGS "webengine-system-libevent") + qt_configure_add_summary_entry(ARGS "webengine-system-libxml") + qt_configure_add_summary_entry(ARGS "webengine-system-lcms2") + qt_configure_add_summary_entry(ARGS "webengine-system-libpng") + qt_configure_add_summary_entry(ARGS "webengine-system-libtiff") + qt_configure_add_summary_entry(ARGS "webengine-system-libjpeg") + qt_configure_add_summary_entry(ARGS "webengine-system-libopenjpeg2") + qt_configure_add_summary_entry(ARGS "webengine-system-harfbuzz") + qt_configure_add_summary_entry(ARGS "webengine-system-freetype") + qt_configure_add_summary_entry(ARGS "webengine-system-libpci") + qt_configure_end_summary_section() +endif() + +if(QT_FEATURE_static) + qt_configure_add_summary_section(NAME "Qt 3rdparty libs") + qt_configure_add_summary_entry(ARGS "webengine-qt-freetype") + qt_configure_add_summary_entry(ARGS "webengine-qt-harfbuzz") + qt_configure_add_summary_entry(ARGS "webengine-qt-libpng") + qt_configure_add_summary_entry(ARGS "webengine-qt-libjpeg") + qt_configure_add_summary_entry(ARGS "webengine-qt-zlib") +endif() + +# << Optional system libraries +qt_configure_end_summary_section() +# < Qt WebEngine Build Features + +qt_configure_add_report_entry( + TYPE NOTE + MESSAGE "QtWebEngine build is disabled by user." + CONDITION QtWebEngine_SUPPORT AND NOT QT_FEATURE_qtwebengine_build +) + +qt_configure_add_report_entry( + TYPE NOTE + MESSAGE "QtPdf build is disabled by user." + CONDITION QtPdf_SUPPORT AND NOT QT_FEATURE_qtpdf_build +) + +qt_configure_add_report_entry( + TYPE WARNING + MESSAGE "Building fat libray with device and simulator architectures will disable NEON." + CONDITION IOS AND simulator AND device AND QT_FEATURE_qtpdf_build +) + +if(LINUX AND QT_FEATURE_xcb AND TARGET Qt::Gui) + set(ozone_x11_support X11 LIBDRM XCOMPOSITE XCURSOR XRANDR XI XPROTO XSHMFENCE XTST) + set(ozone_x11_error OFF) + foreach(xs ${ozone_x11_support}) + if(NOT ${xs}_FOUND) + set(ozone_x11_error ON) + set(ozone_x11_error_message "${ozone_x11_error_message}\n-- ${xs} libray not found") + endif() + endforeach() + if(ozone_x11_error) + qt_configure_add_report_entry( + TYPE WARNING + MESSAGE + "Could not find all necessary libraries for qpa-xcb support.${ozone_x11_error_message}" + ) + endif() +endif() + +if(PRINT_BFD_LINKER_WARNING) + qt_configure_add_report_entry( + TYPE WARNING + MESSAGE "Using bfd linker requires at least 4096 open files limit" + ) +endif() +if(NOT FEATURE_webengine_opus_system AND NOT Perl_FOUND) + qt_configure_add_report_entry( + TYPE WARNING + MESSAGE "No perl found, compiling opus without some optimizations." + ) +endif() + |