diff options
Diffstat (limited to 'tools/qmake/mkspecs/features/configure.prf')
-rw-r--r-- | tools/qmake/mkspecs/features/configure.prf | 91 |
1 files changed, 85 insertions, 6 deletions
diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf index 7b111b78f..4be9fac20 100644 --- a/tools/qmake/mkspecs/features/configure.prf +++ b/tools/qmake/mkspecs/features/configure.prf @@ -19,14 +19,93 @@ defineTest(runConfigure) { test ~= s/\\.pro$// qtCompileTest($$test) } - # libcap-dev package doesn't ship .pc files on Ubuntu. - linux:!config_libcap:skipBuild("libcap development package appears to be missing") - linux:!config_khr:skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)") - contains(QT_CONFIG, xcb) { - for(package, $$list("libdrm xcomposite xi xrandr")) { + + linux { + # libcap-dev package doesn't ship .pc files on Ubuntu. + !config_libcap:skipBuild("libcap development package appears to be missing") + !config_khr:skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)") + + REQUIRED_PACKAGES = dbus-1 fontconfig + contains(QT_CONFIG, xcb): REQUIRED_PACKAGES += libdrm xcomposite xcursor xi xrandr xscrnsaver xtst + contains(QT_CONFIG, pulseaudio): REQUIRED_PACKAGES += libpulse + contains(QT_CONFIG, system-png): REQUIRED_PACKAGES += libpng + contains(QT_CONFIG, system-harfbuzz): REQUIRED_PACKAGES += harfbuzz + !cross_compile: REQUIRED_PACKAGES += libpci + + for(package, $$list($$REQUIRED_PACKAGES)) { !packagesExist($$package):skipBuild("Unmet dependency: $$package") } + packagesExist(minizip, zlib): WEBENGINE_CONFIG += use_system_minizip + else: log("System zlib or minizip not found. Using Chromium's copies.$${EOL}") + packagesExist(libwebp,libwebpdemux): WEBENGINE_CONFIG += use_system_libwebp + else: log("System libwebp or libwebpdemux not found. Using Chromium's copies.$${EOL}") + packagesExist(libxml-2.0,libxslt): WEBENGINE_CONFIG += use_system_libxslt + else: log("System libxml2 or libxslt not found. Using Chromium's copies.$${EOL}") + for(package, $$list("libevent flac jsoncpp opus speex")) { + packagesExist($$package): WEBENGINE_CONFIG += use_system_$$package + else: log("System $$package not found. Using Chromium's copy.$${EOL}") + } + packagesExist("\'vpx >= 1.4\'"): WEBENGINE_CONFIG += use_system_vpx + else: log("System vpx >= 1.4 not found. Using Chromium's copy.$${EOL}") + config_srtp: WEBENGINE_CONFIG += use_system_libsrtp + else: log("System libsrtp not found. Using Chromium's copy.$${EOL}") + config_snappy: WEBENGINE_CONFIG += use_system_snappy + else: log("System snappy not found. Using Chromium's copy.$${EOL}") + + !cross_compile { + packagesExist(nss): WEBENGINE_CONFIG += use_nss + else: log("System NSS not found, BoringSSL will be used.$${EOL}") + } + } + + isEmpty(skipBuildReason): { + cache(CONFIG, add, $$list(webengine_successfully_configured)) + !isEmpty(WEBENGINE_CONFIG) { + cache(WEBENGINE_CONFIG, add, $$list($$WEBENGINE_CONFIG)) + export(WEBENGINE_CONFIG) + } + } +} + +# This is called from default_post, at which point we've also parsed +# command line options +defineTest(finalizeConfigure) { + linux { + use?(nss) { + log("SSL............................... Using system NSS$${EOL}") + } else { + log("SSL............................... Using bundled BoringSSL$${EOL}") + } + use?(system_icu) { + packagesExist("icu-uc icu-i18n") { + log("ICU............................... Using system version$${EOL}") + } else { + log("ICU............................... System ICU not found$${EOL}") + skipBuild("Unmet dependencies: icu-uc, icu-i18n") + } + } else { + log("ICU............................... Using internal copy (Default, force system ICU with WEBENGINE_CONFIG += use_system_icu)$${EOL}") + } + use?(system_ffmpeg) { + packagesExist("libavcodec libavformat libavutil") { + packagesExist("libwebp, libwebpdemux, opus, \'vpx >= 1.4\'"){ + log("FFMPEG............................ Using system version$${EOL}") + } else { + log("FFMPEG............................ Conflicting FFMPEG dependencies$${EOL}") + skipBuild("Unmet dependencies: opus, vpx, libwebp, libwebpdemux") + } + } else { + log("FFMPEG............................ System FFMPEG not found$${EOL}") + skipBuild("Unmet dependencies: libavcodec, libavformat, libavutil") + } + } else { + log("FFMPEG............................ Using internal copy (Default, force system FFMPEG with WEBENGINE_CONFIG += use_system_ffmpeg)$${EOL}") + } + } + use?(proprietary_codecs) { + log("Proprietary codecs (H264, MP3).... Enabled$${EOL}") + } else { + log("Proprietary codecs (H264, MP3).... Not enabled (Default, enable with WEBENGINE_CONFIG += use_proprietary_codecs)$${EOL}") } - isEmpty(skipBuildReason):cache(CONFIG, add, $$list(webengine_successfully_configured)) } |