diff options
author | Michal Klocek <michal.klocek@qt.io> | 2019-08-09 17:40:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-09-07 07:38:48 +0000 |
commit | 047d61f188aae3fe3ebc689900b8a5c9fb6e901d (patch) | |
tree | 8c12916d64de5139e09b2d9b83425f9821f1a96c /mkspecs/features/functions.prf | |
parent | 68539693fe022595b2e4fbecd448b2fca5e7d3e5 (diff) |
Add webengine-core feature
Create/split main configure for submodules. Now configure system knows when webenginecore
module is not going to be built and the user gets the feedback after the configure step
with the message:
The following modules are not being compiled in this configuration:
webenginecore
webengine
webenginewidgets
If a module is not built also features are not populated, therefore some tests
have to be moved to main configuration. This improves error reporting and prepares
landing for QtPdf modules.
Remove configure.prf and fix issues after config split.
Add makefile call to report errors. Now calling make also reports
issues.
Task-number: QTBUG-75840
Task-number: QTBUG-76606
Change-Id: I76944df4c5db6f4954c464e3741a8054cb10b40e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'mkspecs/features/functions.prf')
-rw-r--r-- | mkspecs/features/functions.prf | 99 |
1 files changed, 93 insertions, 6 deletions
diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf index d3eda85b2..f858243e1 100644 --- a/mkspecs/features/functions.prf +++ b/mkspecs/features/functions.prf @@ -96,16 +96,103 @@ defineReplace(gnOS) { return(unknown) } -defineTest(isDeveloperBuild) { - qtConfig(private_tests): return(true) # enabled for developer-build - return(false) -} - defineTest(skipBuild) { - skipBuildReason = "$$skipBuildReason $${EOL}$$1" + isEmpty(skipBuildReason): skipBuildReason = $$1 + else: skipBuildReason = "$$skipBuildReason $${EOL}$$1" export(skipBuildReason) } +defineTest(isWebEngineCoreBuild) { + !qtHaveModule(gui) { + skipBuild("QtWebEngine requires QtGui.") + return(false) + } + + !exists($$QTWEBENGINE_ROOT/src/3rdparty/chromium) { + skipBuild("Submodule qtwebengine-chromium does not exist. Run 'git submodule update --init'.") + return(false) + } + + WSPC = $$find(OUT_PWD, \\s) + !isEmpty(WSPC) { + skipBuild("QtWebEngine cannot be built in a path that contains whitespace characters.") + return(false) + } + + !isPlatformSupported() { + # make sure we have skipBuildReason + isEmpty(skipBuildReason): skipBuild("Unknow error. Platform unspported") + return(false) + } + + linux:contains(QT_CONFIG,no-pkg-config) { + skipBuild("pkg-config is required") + return(false) + } + + include($$QTWEBENGINE_OUT_ROOT/src/core/qtwebenginecore-config.pri) + QT_FOR_CONFIG += webenginecore-private + + win32:!qtConfig(webengine-win-compiler64) { + skipBuild("Required 64-bit cross-building or native toolchain could not be found.") + return(false) + } + + !qtConfig(webengine-gperf) { + skipBuild("Required gperf could not be found.") + return(false) + } + !qtConfig(webengine-bison) { + skipBuild("Required bison could not be found.") + return(false) + } + !qtConfig(webengine-flex) { + skipBuild("Required flex could not be found.") + return(false) + } + !qtConfig(webengine-python2) { + skipBuild("A suitable version of python2 could not be found.") + return(false) + } + + sanitizer: !qtConfig(webengine-sanitizer) { + skipBuild("Chosen sanitizer configuration is not supported. Check config.log for details or use -feature-webengine-sanitizer to force build with the chosen sanitizer configuration.") + return(false); + } + + linux { + + !qtConfig(webengine-host-pkg-config) { + skipBuild("Host pkg-config is required") + return(false) + } + + !qtConfig(webengine-system-glibc) { + skipBuild("A suitable version >= 2.27 of libc could not be found.") + return(false) + } + + QT_FOR_CONFIG += gui-private + + !qtConfig(webengine-system-khr) { + skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)") + return(false) + } + + for(package, $$list("nss dbus fontconfig")) { + !qtConfig(webengine-system-$$package) { + skipBuild("A suitable version of $$package could not be found.") + return(false) + } + } + + qtConfig(xcb) : !qtConfig(webengine-ozone-x11) { + skipBuild("Could not find all necessary libraries for qpa-xcb support") + return(false) + } + } +} + defineReplace(pkgConfigHostExecutable) { wrapper_name = $$OUT_PWD/pkg-config-host_wrapper.sh wrapper_cmd = $$QMAKE_PKG_CONFIG_HOST |