diff --git a/configure.pri b/configure.pri index b7bb0f34d57c7173e1263818c6e81cba5c5602ea..4728ec3295d12606806cf4e9e3a226919a0a38a1 100644 --- a/configure.pri +++ b/configure.pri @@ -1,4 +1,4 @@ -include(src/buildtools/config/platform.pri) +include(src/buildtools/config/support.pri) include(src/buildtools/config/functions.pri) # this must be done outside any function @@ -102,12 +102,38 @@ defineTest(qtConfTest_detectBison) { return(true) } +defineTest(qtwebengine_platformError) { + platformError = $$1 + export(platformError) +} + defineTest(qtConfTest_detectPlatform) { - !qtwebengine_isPlatformSupported() { + QT_FOR_CONFIG += gui-private + + !linux:!win32:!macos { + qtwebengine_platformError("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.") + } else { + linux:qtwebengine_isLinuxPlatformSupported() { + $${1}.platform = "linux" + } + win32:qtwebengine_isWindowsPlatformSupported() { + $${1}.platform = "windows" + } + macos:qtwebengine_isMacOsPlatformSupported() { + $${1}.platform = "macos" + } + } + + !isEmpty(platformError) { qtLog("Platform not supported.") + $${1}.platformSupport = $$platformError + export($${1}.platformSupport) + $${1}.cache += platformSupport + export($${1}.cache) return(false) - } - return(true) + } + export($${1}.platformSupport) + return(true) } defineTest(qtConfTest_detectArch) { @@ -361,3 +387,140 @@ defineTest(qtwebengine_confCheckError) { QT_FOR_CONFIG += buildtools-private gui-private return($$qtwebengine_checkError()) } + +defineTest(qtwebengine_isLinuxPlatformSupported) { + !gcc|intel_icc { + qtwebengine_platformError("Qt WebEngine on Linux requires clang or GCC.") + return(false) + } + gcc:!clang:!qtwebengine_isGCCVersionSupported(): return(false) + gcc:!qtConfig(c++14) { + qtwebengine_platformError("C++14 support is required in order to build chromium.") + return(false) + } + return(true) +} + +defineTest(qtwebengine_isWindowsPlatformSupported) { + winrt { + qtwebengine_platformError("WinRT is not supported.") + return(false) + } + qtwebengine_isBuildingOnWin32() { + qtwebengine_platformError("Qt WebEngine on Windows must be built on a 64-bit machine.") + return(false) + } + !msvc|intel_icl { + qtwebengine_platformError("Qt WebEngine on Windows requires MSVC or Clang (MSVC mode).") + return(false) + } + !qtwebengine_isMinWinSDKVersion(10, 17763): { + qtwebengine_platformError("Qt WebEngine on Windows requires a Windows SDK version 10.0.17763 or newer.") + return(false) + } + return(true) +} + +defineTest(qtwebengine_isMacOsPlatformSupported) { + # FIXME: Try to get it back down to 8.2 for building on OS X 10.11 + !qtwebengine_isMinXcodeVersion(8, 3, 3) { + qtwebengine_platformError("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine.") + return(false) + } + !clang|intel_icc { + qtwebengine_platformError("Qt WebEngine on macOS requires Clang.") + return(false) + } + # We require macOS 10.12 (darwin version 16.0.0) or newer. + darwin_major_version = $$section(QMAKE_HOST.version, ., 0, 0) + lessThan(darwin_major_version, 16) { + qtwebengine_platformError("Building Qt WebEngine requires macOS version 10.12 or newer.") + return(false) + } + !qtwebengine_isMinOSXSDKVersion(10, 12): { + qtwebengine_platformError("Building Qt WebEngine requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.") + return(false) + } + return(true) +} + +defineTest(qtwebengine_isGCCVersionSupported) { + # Keep in sync with src/webengine/doc/src/qtwebengine-platform-notes.qdoc + greaterThan(QMAKE_GCC_MAJOR_VERSION, 4):return(true) + + qtwebengine_platformError("Using gcc version "$$QMAKE_GCC_MAJOR_VERSION"."$$QMAKE_GCC_MINOR_VERSION", but at least gcc version 5 is required to build Qt WebEngine.") + return(false) +} + +defineTest(qtwebengine_isBuildingOnWin32) { + # The check below is ugly, but necessary, as it seems to be the only reliable way to detect if the host + # architecture is 32 bit. QMAKE_HOST.arch does not work as it returns the architecture that the toolchain + # is building for, not the system's actual architecture. + PROGRAM_FILES_X86 = $$(ProgramW6432) + isEmpty(PROGRAM_FILES_X86): return(true) + return(false) +} + +defineTest(qtwebengine_isMinOSXSDKVersion) { + requested_major = $$1 + requested_minor = $$2 + requested_patch = $$3 + isEmpty(requested_patch): requested_patch = 0 + WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null") + export(WEBENGINE_OSX_SDK_PRODUCT_VERSION) + isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) { + qtwebengine_platformError("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.") + return(false) + } + major_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 0, 0) + minor_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 1, 1) + patch_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 2, 2) + isEmpty(patch_version): patch_version = 0 + + greaterThan(major_version, $$requested_major):return(true) + equals(major_version, $$requested_major):greaterThan(minor_version, $$requested_minor):return(true) + equals(major_version, $$requested_major):equals(minor_version, $$requested_minor):!lessThan(patch_version, $$requested_patch):return(true) + + return(false) +} + +defineTest(qtwebengine_isMinXcodeVersion) { + requested_major = $$1 + requested_minor = $$2 + requested_patch = $$3 + isEmpty(requested_minor): requested_minor = 0 + isEmpty(requested_patch): requested_patch = 0 + target_var = QMAKE_XCODE_VERSION + major_version = $$section($$target_var, ., 0, 0) + minor_version = $$section($$target_var, ., 1, 1) + patch_version = $$section($$target_var, ., 2, 2) + isEmpty(minor_version): minor_version = 0 + isEmpty(patch_version): patch_version = 0 + + greaterThan(major_version, $$requested_major):return(true) + equals(major_version, $$requested_major):greaterThan(minor_version, $$requested_minor):return(true) + equals(major_version, $$requested_major):equals(minor_version, $$requested_minor):!lessThan(patch_version, $$requested_patch):return(true) + + return(false) +} + +defineTest(qtwebengine_isMinWinSDKVersion) { + requested_major = $$1 + requested_minor = $$2 + WIN_SDK_VERSION = $$(WindowsSDKVersion) + + isEmpty(WIN_SDK_VERSION)|equals(WIN_SDK_VERSION, "\\") { + qtwebengine_platformError("Could not detect Windows SDK version (\'WindowsSDKVersion\' environment variable is not set).") + return(false) + } + + # major.0.minor + major_version = $$section(WIN_SDK_VERSION, ., 0, 0) + minor_version = $$section(WIN_SDK_VERSION, ., 2, 2) + + greaterThan(major_version, $$requested_major):return(true) + equals(major_version, $$requested_major):greaterThan(minor_version, $$requested_minor):return(true) + equals(major_version, $$requested_major):equals(minor_version, $$requested_minor)::return(true) + + return(false) +} diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf index a67aba883e5b9d4b66f41b54eeaba05318c1aae2..512e2523b946707b1e4d6c0f39e5bab11ec689d7 100644 --- a/mkspecs/features/functions.prf +++ b/mkspecs/features/functions.prf @@ -1,4 +1,4 @@ -include($$QTWEBENGINE_ROOT/src/buildtools/config/platform.pri) +include($$QTWEBENGINE_ROOT/src/buildtools/config/support.pri) defineReplace(getConfigDir) { CONFIG(release, debug|release):return("release") diff --git a/src/buildtools/config/platform.pri b/src/buildtools/config/platform.pri deleted file mode 100644 index 8645e682f14c1291883651490e2321f235b61657..0000000000000000000000000000000000000000 --- a/src/buildtools/config/platform.pri +++ /dev/null @@ -1,272 +0,0 @@ -defineTest(qtwebengine_isLinuxPlatformSupported) { - !gcc|intel_icc { - qtwebengine_skipBuild("Qt WebEngine on Linux requires clang or GCC.") - return(false) - } - gcc:!clang:!qtwebengine_isGCCVersionSupported(): return(false) - gcc:!qtConfig(c++14) { - qtwebengine_skipBuild("C++14 support is required in order to build chromium.") - return(false) - } - return(true) -} - -defineTest(qtwebengine_isWindowsPlatformSupported) { - winrt { - qtwebengine_skipBuild("WinRT is not supported.") - return(false) - } - qtwebengine_isBuildingOnWin32() { - qtwebengine_skipBuild("Qt WebEngine on Windows must be built on a 64-bit machine.") - return(false) - } - !msvc|intel_icl { - qtwebengine_skipBuild("Qt WebEngine on Windows requires MSVC or Clang (MSVC mode).") - return(false) - } - !qtwebengine_isMinWinSDKVersion(10, 17763): { - qtwebengine_skipBuild("Qt WebEngine on Windows requires a Windows SDK version 10.0.17763 or newer.") - return(false) - } - return(true) -} - -defineTest(qtwebengine_isMacOsPlatformSupported) { - # FIXME: Try to get it back down to 8.2 for building on OS X 10.11 - !qtwebengine_isMinXcodeVersion(8, 3, 3) { - qtwebengine_skipBuild("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine.") - return(false) - } - !clang|intel_icc { - qtwebengine_skipBuild("Qt WebEngine on macOS requires Clang.") - return(false) - } - # We require macOS 10.12 (darwin version 16.0.0) or newer. - darwin_major_version = $$section(QMAKE_HOST.version, ., 0, 0) - lessThan(darwin_major_version, 16) { - qtwebengine_skipBuild("Building Qt WebEngine requires macOS version 10.12 or newer.") - return(false) - } - !qtwebengine_isMinOSXSDKVersion(10, 12): { - qtwebengine_skipBuild("Building Qt WebEngine requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.") - return(false) - } - return(true) -} - -defineTest(qtwebengine_isPlatformSupported) { - QT_FOR_CONFIG += gui-private - !linux:!win32:!macos { - qtwebengine_skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.") - return(false) - } - linux:qtwebengine_isLinuxPlatformSupported(): return(true) - win32:qtwebengine_isWindowsPlatformSupported(): return(true) - macos:qtwebengine_isMacOsPlatformSupported(): return(true) - return(false) -} - -defineTest(qtwebengine_isGCCVersionSupported) { - # Keep in sync with src/webengine/doc/src/qtwebengine-platform-notes.qdoc - greaterThan(QMAKE_GCC_MAJOR_VERSION, 4):return(true) - - qtwebengine_skipBuild("Using gcc version "$$QMAKE_GCC_MAJOR_VERSION"."$$QMAKE_GCC_MINOR_VERSION", but at least gcc version 5 is required to build Qt WebEngine.") - return(false) -} - -defineTest(qtwebengine_isBuildingOnWin32) { - # The check below is ugly, but necessary, as it seems to be the only reliable way to detect if the host - # architecture is 32 bit. QMAKE_HOST.arch does not work as it returns the architecture that the toolchain - # is building for, not the system's actual architecture. - PROGRAM_FILES_X86 = $$(ProgramW6432) - isEmpty(PROGRAM_FILES_X86): return(true) - return(false) -} - -defineTest(qtwebengine_isMinOSXSDKVersion) { - requested_major = $$1 - requested_minor = $$2 - requested_patch = $$3 - isEmpty(requested_patch): requested_patch = 0 - WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null") - export(WEBENGINE_OSX_SDK_PRODUCT_VERSION) - isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) { - qtwebengine_skipBuild("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.") - return(false) - } - major_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 0, 0) - minor_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 1, 1) - patch_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 2, 2) - isEmpty(patch_version): patch_version = 0 - - greaterThan(major_version, $$requested_major):return(true) - equals(major_version, $$requested_major):greaterThan(minor_version, $$requested_minor):return(true) - equals(major_version, $$requested_major):equals(minor_version, $$requested_minor):!lessThan(patch_version, $$requested_patch):return(true) - - return(false) -} - -defineTest(qtwebengine_isMinXcodeVersion) { - requested_major = $$1 - requested_minor = $$2 - requested_patch = $$3 - isEmpty(requested_minor): requested_minor = 0 - isEmpty(requested_patch): requested_patch = 0 - target_var = QMAKE_XCODE_VERSION - major_version = $$section($$target_var, ., 0, 0) - minor_version = $$section($$target_var, ., 1, 1) - patch_version = $$section($$target_var, ., 2, 2) - isEmpty(minor_version): minor_version = 0 - isEmpty(patch_version): patch_version = 0 - - greaterThan(major_version, $$requested_major):return(true) - equals(major_version, $$requested_major):greaterThan(minor_version, $$requested_minor):return(true) - equals(major_version, $$requested_major):equals(minor_version, $$requested_minor):!lessThan(patch_version, $$requested_patch):return(true) - - return(false) -} - -defineTest(qtwebengine_isMinWinSDKVersion) { - requested_major = $$1 - requested_minor = $$2 - WIN_SDK_VERSION = $$(WindowsSDKVersion) - - isEmpty(WIN_SDK_VERSION)|equals(WIN_SDK_VERSION, "\\") { - qtwebengine_skipBuild("Could not detect Windows SDK version (\'WindowsSDKVersion\' environment variable is not set).") - return(false) - } - - # major.0.minor - major_version = $$section(WIN_SDK_VERSION, ., 0, 0) - minor_version = $$section(WIN_SDK_VERSION, ., 2, 2) - - greaterThan(major_version, $$requested_major):return(true) - equals(major_version, $$requested_major):greaterThan(minor_version, $$requested_minor):return(true) - equals(major_version, $$requested_major):equals(minor_version, $$requested_minor)::return(true) - - return(false) -} - -defineTest(qtwebengine_skipBuild) { - isEmpty(skipBuildReason): skipBuildReason = $$1 - else: skipBuildReason = "$$skipBuildReason $${EOL}$$1" - export(skipBuildReason) -} - -defineReplace(qtwebengine_checkError) { - - static { - qtwebengine_skipBuild("Static builds of QtWebEngine are not supported.") - return(false) - } - - !qtHaveModule(gui) { - qtwebengine_skipBuild("QtWebEngine requires QtGui.") - return(false) - } - - !qtConfig(webengine-submodule) { - qtwebengine_skipBuild("Submodule qtwebengine-chromium does not exist. Run 'git submodule update --init'.") - return(false) - } - - !qtConfig(webengine-nowhitespace) { - qtwebengine_skipBuild("QtWebEngine cannot be built in a path that contains whitespace characters.") - return(false) - } - - !qtwebengine_isPlatformSupported() { - isEmpty(skipBuildReason): qtwebengine_skipBuild("Unknow error. Platform unsupported.") - return(false) - } - - !qtConfig(webengine-arch-support) { - qtwebengine_skipBuild("QtWebEngine can only be built for x86, x86-64, ARM, Aarch64, and MIPSel architectures.") - return(false) - } - - !qtConfig(webengine-gperf) { - qtwebengine_skipBuild("Tool gperf is required to build QtWebEngine.") - return(false) - } - - !qtConfig(webengine-bison) { - qtwebengine_skipBuild("Tool bison is required to build QtWebEngine.") - return(false) - } - - !qtConfig(webengine-flex) { - qtwebengine_skipBuild("Tool flex is required to build QtWebEngine.") - return(false) - } - - !qtConfig(webengine-python2) { - qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build QtWebEngine.") - return(false) - } - - linux:!qtwebengine_checkErrorForLinux():return(false) - win:!qtwebengine_checkErrorForWindows():return(false) - - sanitizer: !qtConfig(webengine-sanitizer) { - qtwebengine_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); - } - - return(true) -} - -defineTest(qtwebengine_checkErrorForLinux) { - - !qtConfig(pkg-config) { - qtwebengine_skipBuild("A pkg-config support is required.") - return(false) - } - - !qtConfig(webengine-host-pkg-config) { - qtwebengine_skipBuild("Host pkg-config is required") - return(false) - } - - !qtConfig(webengine-system-glibc) { - qtwebengine_skipBuild("A suitable version >= 2.27 of libc could not be found.") - return(false) - } - - !qtConfig(webengine-system-khr) { - qtwebengine_skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)") - return(false) - } - - for(package, $$list("nss dbus fontconfig")) { - !qtConfig(webengine-system-$$package) { - qtwebengine_skipBuild("A suitable version of $$package could not be found.") - return(false) - } - } - - qtConfig(pkg-config):qtConfig(xcb):!qtConfig(webengine-ozone-x11) { - qtwebengine_skipBuild("Could not find all necessary libraries for qpa-xcb support") - return(false) - } - return(true) -} - -defineTest(qtwebengine_checkErrorForWindows) { - !qtConfig(webengine-win-compiler64) { - qtwebengine_skipBuild("Required 64-bit cross-building or native toolchain could not be found.") - return(false) - } - - !qtConfig(webengine-winversion) { - qtwebengine_skipBuild("Needs Visual Studio 2017 or higher") - return(false) - } - return(true) -} - -defineTest(qtwebengine_makeCheckError) { - include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri) - QT_FOR_CONFIG += buildtools-private gui-private - return($$qtwebengine_checkError()) -} diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri new file mode 100644 index 0000000000000000000000000000000000000000..7c1262f855c8c21545b4612fce71dacc3ba1970f --- /dev/null +++ b/src/buildtools/config/support.pri @@ -0,0 +1,133 @@ +defineTest(qtwebengine_skipBuild) { + isEmpty(skipBuildReason): skipBuildReason = $$1 + else: skipBuildReason = "$$skipBuildReason $${EOL}$$1" + export(skipBuildReason) +} + +defineReplace(qtwebengine_checkError) { + + static { + qtwebengine_skipBuild("Static builds of QtWebEngine are not supported.") + return(false) + } + + !qtHaveModule(gui) { + qtwebengine_skipBuild("QtWebEngine requires QtGui.") + return(false) + } + + !qtConfig(webengine-submodule) { + qtwebengine_skipBuild("Submodule qtwebengine-chromium does not exist. Run 'git submodule update --init'.") + return(false) + } + + !qtConfig(webengine-nowhitespace) { + qtwebengine_skipBuild("QtWebEngine cannot be built in a path that contains whitespace characters.") + return(false) + } + + qtConfig(webengine-no-platform-support) { + !isEmpty(platformError) { + qtwebengine_skipBuild($$platformError) + return(false) + } + !isEmpty(QTWEBENGINE_OUT_ROOT) { + include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri) + QT_FOR_CONFIG += buildtools-private + qtwebengine_skipBuild($$PLATFORM_ERROR) + return(false) + } + qtwebengine_skipBuild("QtWebEngine will not be built. Platform unsupported.") # re-run of configure when topLevel build + return(false): + } + + !qtConfig(webengine-arch-support) { + qtwebengine_skipBuild("QtWebEngine can only be built for x86, x86-64, ARM, Aarch64, and MIPSel architectures.") + return(false) + } + + !qtConfig(webengine-gperf) { + qtwebengine_skipBuild("Tool gperf is required to build QtWebEngine.") + return(false) + } + + !qtConfig(webengine-bison) { + qtwebengine_skipBuild("Tool bison is required to build QtWebEngine.") + return(false) + } + + !qtConfig(webengine-flex) { + qtwebengine_skipBuild("Tool flex is required to build QtWebEngine.") + return(false) + } + + !qtConfig(webengine-python2) { + qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build QtWebEngine.") + return(false) + } + + linux:!qtwebengine_checkErrorForLinux():return(false) + win:!qtwebengine_checkErrorForWindows():return(false) + + sanitizer: !qtConfig(webengine-sanitizer) { + qtwebengine_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); + } + + return(true) +} + +defineTest(qtwebengine_checkErrorForLinux) { + + !qtConfig(pkg-config) { + qtwebengine_skipBuild("A pkg-config support is required.") + return(false) + } + + !qtConfig(webengine-host-pkg-config) { + qtwebengine_skipBuild("Host pkg-config is required") + return(false) + } + + !qtConfig(webengine-system-glibc) { + qtwebengine_skipBuild("A suitable version >= 2.27 of libc could not be found.") + return(false) + } + + !qtConfig(webengine-system-khr) { + qtwebengine_skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)") + return(false) + } + + for(package, $$list("nss dbus fontconfig")) { + !qtConfig(webengine-system-$$package) { + qtwebengine_skipBuild("A suitable version of $$package could not be found.") + return(false) + } + } + + qtConfig(pkg-config):qtConfig(xcb):!qtConfig(webengine-ozone-x11) { + qtwebengine_skipBuild("Could not find all necessary libraries for qpa-xcb support") + return(false) + } + return(true) +} + +defineTest(qtwebengine_checkErrorForWindows) { + !qtConfig(webengine-win-compiler64) { + qtwebengine_skipBuild("Required 64-bit cross-building or native toolchain could not be found.") + return(false) + } + + !qtConfig(webengine-winversion) { + qtwebengine_skipBuild("Needs Visual Studio 2017 or higher") + return(false) + } + return(true) +} + +defineTest(qtwebengine_makeCheckError) { + include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri) + QT_FOR_CONFIG += buildtools-private gui-private + return($$qtwebengine_checkError()) +} diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json index d7cac2b5c08c9bcc4e37aafaf6171b55efbd4020..535d8358b3b55461f33e93ed086e7b6907964494 100644 --- a/src/buildtools/configure.json +++ b/src/buildtools/configure.json @@ -352,9 +352,10 @@ "label": "64bit compiler", "type": "isWindowsHostCompiler64" }, - "webengine-platform": { + "webengine-platform-support": { "label": "platform supported", - "type": "detectPlatform" + "type": "detectPlatform", + "log": "platformSupport" }, "webengine-arch-support": { "label": "architecture supported", @@ -380,7 +381,7 @@ && features.webengine-submodule && features.webengine-nowhitespace && features.webengine-arch-support - && tests.webengine-platform + && !features.webengine-no-platform-support && !config.static && (!config.linux || features.pkg-config) && (!features.xcb || features.webengine-ozone-x11) @@ -666,6 +667,14 @@ "label": "architecture", "condition" : "tests.webengine-arch-support", "output": [ "privateFeature" ] + }, + "webengine-no-platform-support": { + "label": "platform", + "condition" : "!tests.webengine-platform-support", + "output": [ + "privateFeature", + { "type": "varAssign", "name": "PLATFORM_ERROR", "value": "tests.webengine-platform-support.platformSupport" } + ] } }, "report": [