blob: f04fdae81899651190cc82f4a152275f2666dfde [file] [log] [blame]
{
"module": "buildtools",
"depends": [
"core-private",
"gui-private",
"printsupport"
],
"condition": "module.gui",
"commandline": {
"options": {
"build-qtwebengine-core": "boolean",
"webengine-jumbo-build": { "type": "optionalString", "name": "merge_limit"}
}
},
"libraries": {
"webengine-dbus": {
"label": "d-bus",
"sources": [
{ "type": "pkgConfig", "args": "dbus-1" }
]
},
"webengine-fontconfig": {
"label": "fontconfig",
"sources": [
{ "type": "pkgConfig", "args": "fontconfig" }
]
},
"webengine-libdrm": {
"label": "libdrm",
"sources": [
{ "type": "pkgConfig", "args": "libdrm" }
]
},
"webengine-xcomposite": {
"label": "xcomposite",
"sources": [
{ "type": "pkgConfig", "args": "xcomposite" }
]
},
"webengine-xcursor": {
"label": "xcursor",
"sources": [
{ "type": "pkgConfig", "args": "xcursor" }
]
},
"webengine-xi": {
"label": "xi",
"sources": [
{ "type": "pkgConfig", "args": "xi" }
]
},
"webengine-xtst": {
"label": "xtst",
"sources": [
{ "type": "pkgConfig", "args": "xtst" }
]
},
"webengine-nss": {
"label": "nss >= 3.26",
"sources": [
{ "type": "pkgConfig", "args": "nss >= 3.26" }
]
},
"webengine-x11" : {
"label" : "x11",
"sources": [
{ "type": "pkgConfig", "args": "x11" }
]
},
"webengine-glib": {
"label": "glib-2.0 >= 2.32.0",
"sources": [
{ "type": "pkgConfig", "args": "glib-2.0 >= 2.32.0" }
]
},
"webengine-harfbuzz": {
"label": "harfbuzz >= 2.2.0",
"sources": [
{ "type": "pkgConfig", "args": "harfbuzz >= 2.2.0" }
]
},
"webengine-jpeglib": {
"label": "compatible jpeglib",
"type": "compile",
"test": {
"head": [
"#include <cstdio>",
"#include <cstring>",
"extern \"C\" {",
" #include <jpeglib.h>",
"}"
],
"main": [
"JDIMENSION dummy;",
"jpeg_crop_scanline(nullptr, &dummy, &dummy);",
"jpeg_skip_scanlines(nullptr, dummy);"
]
},
"sources": [
{ "type": "pkgConfig", "args": "libjpeg" },
"-ljpeg"
]
},
"webengine-jsoncpp": {
"label": "jsoncpp",
"sources": [
{ "type": "pkgConfig", "args": "jsoncpp" }
]
},
"webengine-libevent": {
"label": "libevent",
"sources": [
{ "type": "pkgConfig", "args": "libevent" }
]
},
"webengine-minizip": {
"label": "minizip",
"sources": [
{ "type": "pkgConfig", "args": "minizip" }
]
},
"webengine-png": {
"label": "libpng >= 1.6.0",
"sources": [
{ "type": "pkgConfig", "args": "libpng >= 1.6.0" }
]
},
"webengine-protobuf": {
"label": "protobuf",
"sources": [
{ "type": "pkgConfig", "args": "protobuf" }
]
},
"webengine-zlib": {
"label": "zlib",
"sources": [
{ "type": "pkgConfig", "args": "zlib" }
]
},
"webengine-re2": {
"label": "re2",
"test" : {
"main": [
"std::string s;",
"RE2 re2(s);"
]
},
"headers": "re2/re2.h",
"sources": [
{ "type": "pkgConfig", "args": "re2" }
]
},
"webengine-icu": {
"label": "icu >= 64",
"sources": [
{ "type": "pkgConfig", "args": "icu-uc >= 64 icu-i18n >= 64" }
]
},
"webengine-webp": {
"label": "libwebp, libwebpmux and libwebpdemux",
"sources": [
{ "type": "pkgConfig", "args": "libwebp libwebpmux libwebpdemux" }
]
},
"webengine-lcms2": {
"label": "lcms2",
"sources": [
{ "type": "pkgConfig", "args": "lcms2" }
]
},
"webengine-freetype": {
"label": "freetype >= 2.4.2",
"test": {
"head": [
"#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"
],
"main": [
"FT_Face ft_face = 0;",
"FT_Reference_Face(ft_face);"
]
},
"sources": [
{ "type": "pkgConfig", "args": "freetype2" }
]
},
"webengine-libxml2": {
"label": "compatible libxml2 and libxslt",
"type": "compile",
"test": {
"tail": [
"#if !defined(LIBXML_ICU_ENABLED)",
"#error libxml icu not enabled",
"#endif"
]
},
"headers": "libxml/xmlversion.h",
"sources": [
{ "type": "pkgConfig", "args": "libxml-2.0 libxslt" }
]
},
"webengine-libdrm": {
"label": "libdrm",
"sources": [
{ "type": "pkgConfig", "args": "libdrm" }
]
},
"webengine-xcomposite": {
"label": "xcomposite",
"sources": [
{ "type": "pkgConfig", "args": "xcomposite" }
]
},
"webengine-xcursor": {
"label": "xcursor",
"sources": [
{ "type": "pkgConfig", "args": "xcursor" }
]
},
"webengine-xi": {
"label": "xi",
"sources": [
{ "type": "pkgConfig", "args": "xi" }
]
},
"webengine-xtst": {
"label": "xtst",
"sources": [
{ "type": "pkgConfig", "args": "xtst" }
]
},
"webengine-ffmpeg": {
"label": "libavcodec libavformat libavutil",
"sources": [
{ "type": "pkgConfig", "args": "libavcodec libavformat libavutil" }
]
},
"webengine-opus": {
"label": "opus",
"sources": [
{ "type": "pkgConfig", "args": "opus" }
]
},
"webengine-snappy": {
"label": "snappy",
"test": {
"main": [
"snappy::Source *src = 0;",
"snappy::Sink *sink = 0;"
]
},
"headers": "snappy.h",
"sources": [
"-lsnappy"
]
},
"webengine-libvpx": {
"label": "libvpx",
"test": {
"main": [
"vpx_codec_cx_pkt pkt;",
"pkt.data.frame.width[0] = 0u;",
"pkt.data.frame.height[0] = 0u;"
]
},
"headers": "vpx/vpx_encoder.h",
"sources": [
{ "type": "pkgConfig", "args": "vpx" },
"-lvpx"
]
}
},
"testDir": "config.tests",
"tests" : {
"webengine-bison": {
"label": "bison",
"type": "detectBison"
},
"webengine-flex": {
"label": "flex",
"type": "detectFlex"
},
"webengine-gn": {
"label": "system gn",
"type": "detectGn"
},
"webengine-glibc": {
"label": "glibc > 2.16",
"type": "compile",
"test": {
"include": "features.h",
"tail": [
"#if __GLIBC__ < 2 || __GLIBC_MINOR__ < 17",
"#error glibc versions below 2.17 are not supported",
"#endif"
]
}
},
"webengine-gperf": {
"label": "gperf",
"type": "detectGperf"
},
"webengine-khr": {
"label": "khr",
"type": "compile",
"test": {
"include": "KHR/khrplatform.h",
"qmake" : [
"!isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL",
"!isEmpty(QMAKE_INCDIR_OPENGL): INCLUDEPATH += $$QMAKE_INCDIR_OPENGL"
]
}
},
"webengine-ninja": {
"label": "system ninja",
"type": "detectNinja"
},
"webengine-python2": {
"label": "python2",
"type": "detectPython2",
"log": "location"
},
"webengine-winversion": {
"label": "winversion",
"type": "compile",
"test": {
"head" : [
"#if !defined(__clang__) && _MSC_FULL_VER < 191426428",
"#error unsupported Visual Studio version",
"#endif"
]
}
},
"webengine-host-pkg-config": {
"label": "host pkg-config",
"type": "detectHostPkgConfig",
"log": "path"
},
"webengine-jumbo-build": {
"label": "jumbo build merge limit",
"type": "detectJumboBuild",
"log": "merge_limit"
},
"webengine-protoc": {
"label": "protoc",
"type": "detectProtoc"
},
"webengine-win-compiler64": {
"label": "64bit compiler",
"type": "isWindowsHostCompiler64"
},
"webengine-platform-support": {
"label": "platform supported",
"type": "detectPlatform",
"log": "platformSupport"
},
"webengine-arch-support": {
"label": "architecture supported",
"type": "detectArch"
},
"webengine-submodule" : {
"label": "submodule initialized",
"type": "detectSubmodule"
},
"webengine-nowhitespace" : {
"label": "build path without whitespace",
"type": "detectNoWhitespace"
}
},
"features": {
"webengine-core-support": {
"label": "Support Qt WebEngine Core",
"condition": "module.gui
&& features.webengine-python2
&& features.webengine-gperf
&& features.webengine-bison
&& features.webengine-flex
&& features.webengine-submodule
&& features.webengine-nowhitespace
&& features.webengine-arch-support
&& !features.webengine-no-platform-support
&& !config.static
&& (!config.linux || features.pkg-config)
&& (!features.xcb || features.webengine-ozone-x11)
&& (!config.win32 || features.webengine-winversion)",
"output": [ "privateFeature" ]
},
"build-qtwebengine-core": {
"label": "Build Qt WebEngine Core",
"purpose": "Provides WebEngine Core support.",
"output": [ "privateFeature" ]
},
"build-qtpdf": {
"label": "Support Qt PDF rendering module",
"purpose": "Enables building the Qt PDF rendering module.",
"output": [ "privateFeature" ]
},
"webengine-developer-build": {
"label": "Developer build",
"purpose": "Enables the developer build configuration.",
"autoDetect": "features.private_tests",
"output": [ "privateFeature" ]
},
"webengine-python2": {
"label": "python2",
"condition": "tests.webengine-python2",
"output": [
"privateFeature",
{ "type": "varAssign", "name": "QMAKE_PYTHON2", "value": "tests.webengine-python2.location" }
]
},
"webengine-gperf": {
"label": "gperf",
"condition": "tests.webengine-gperf",
"output": [ "privateFeature" ]
},
"webengine-bison": {
"label": "bison",
"condition": "tests.webengine-bison",
"output": [ "privateFeature" ]
},
"webengine-flex": {
"label": "flex",
"condition": "tests.webengine-flex",
"output": [ "privateFeature" ]
},
"webengine-system-ninja": {
"label": "Use System Ninja",
"condition": "tests.webengine-ninja",
"output": [ "privateFeature" ]
},
"webengine-system-fontconfig": {
"label": "fontconfig",
"condition": "libs.webengine-fontconfig",
"output": [ "privateFeature" ]
},
"webengine-system-dbus": {
"label": "dbus",
"condition": "libs.webengine-dbus",
"output": [ "privateFeature" ]
},
"webengine-system-libdrm": {
"label": "libdrm",
"condition": "libs.webengine-libdrm",
"output": [ "privateFeature" ]
},
"webengine-system-xcomposite": {
"label": "xcomposite",
"condition": "libs.webengine-xcomposite",
"output": [ "privateFeature" ]
},
"webengine-system-xcursor": {
"label": "xcursor",
"condition": "libs.webengine-xcursor",
"output": [ "privateFeature" ]
},
"webengine-system-xi": {
"label": "xi",
"condition": "libs.webengine-xi",
"output": [ "privateFeature" ]
},
"webengine-system-xtst": {
"label": "xtst",
"condition": "libs.webengine-xtst",
"output": [ "privateFeature" ]
},
"webengine-system-gn": {
"label": "Use System Gn",
"autoDetect": "false",
"condition": "tests.webengine-gn",
"output": [ "privateFeature" ]
},
"webengine-system-khr" : {
"label": "khr",
"condition": "config.unix && tests.webengine-khr",
"output": [ "privateFeature" ]
},
"webengine-system-nss": {
"label": "nss",
"condition": "config.unix && !config.darwin && libs.webengine-nss",
"output": [ "privateFeature" ]
},
"webengine-system-glibc": {
"label": "glibc",
"condition": "config.linux && tests.webengine-glibc",
"output": [ "privateFeature" ]
},
"webengine-system-x11" : {
"label": "x11",
"condition": "config.unix && libs.webengine-x11",
"output": [ "privateFeature" ]
},
"webengine-host-pkg-config": {
"label": "host-pkg-config",
"condition": "config.unix && tests.webengine-host-pkg-config",
"output": [
"privateFeature",
{ "type": "varAssign", "name": "QMAKE_PKG_CONFIG_HOST", "value": "tests.webengine-host-pkg-config.path" }
]
},
"webengine-ozone-x11" : {
"label": "Support qpa-xcb",
"condition": "config.unix
&& features.xcb
&& features.webengine-system-x11
&& features.webengine-system-libdrm
&& features.webengine-system-xcomposite
&& features.webengine-system-xcursor
&& features.webengine-system-xi
&& features.webengine-system-xtst",
"output": [ "privateFeature" ]
},
"webengine-jumbo-build": {
"label": "jumbo build merge batch",
"condition": "tests.webengine-jumbo-build",
"output": [
"privateFeature",
{ "type": "varAssign", "name": "QMAKE_JUMBO_MERGE_LIMIT", "value": "tests.webengine-jumbo-build.merge_limit" }
]
},
"webengine-system-libdrm": {
"label": "libdrm",
"condition": "libs.webengine-libdrm",
"output": [ "privateFeature" ]
},
"webengine-system-xcomposite": {
"label": "xcomposite",
"condition": "libs.webengine-xcomposite",
"output": [ "privateFeature" ]
},
"webengine-system-xcursor": {
"label": "xcursor",
"condition": "libs.webengine-xcursor",
"output": [ "privateFeature" ]
},
"webengine-system-xi": {
"label": "xi",
"condition": "libs.webengine-xi",
"output": [ "privateFeature" ]
},
"webengine-system-xtst": {
"label": "xtst",
"condition": "libs.webengine-xtst",
"output": [ "privateFeature" ]
},
"webengine-system-harfbuzz": {
"label": "harfbuzz",
"condition": "config.unix && features.system-harfbuzz && libs.webengine-harfbuzz",
"output": [ "privateFeature" ]
},
"webengine-system-glib" : {
"label": "glib",
"condition": "config.unix && libs.webengine-glib",
"output": [ "privateFeature" ]
},
"webengine-system-minizip" : {
"label": "minizip",
"condition": "config.unix && libs.webengine-minizip",
"output": [ "privateFeature" ]
},
"webengine-system-zlib" : {
"label": "zlib",
"condition": "config.unix && features.system-zlib && libs.webengine-zlib",
"output": [ "privateFeature" ]
},
"webengine-system-libevent" : {
"label": "libevent",
"condition": "config.unix && libs.webengine-libevent",
"output": [ "privateFeature" ]
},
"webengine-system-jsoncpp" : {
"label": "jsoncpp",
"condition": "config.unix && libs.webengine-jsoncpp",
"output": [ "privateFeature" ]
},
"webengine-system-protobuf" : {
"label": "protobuf",
"condition": "config.unix && libs.webengine-protobuf && tests.webengine-protoc",
"output": [ "privateFeature" ]
},
"webengine-system-png" : {
"label": "png",
"condition": "config.unix && features.system-png && libs.webengine-png",
"output": [ "privateFeature" ]
},
"webengine-system-jpeg" : {
"label": "JPEG",
"condition": "config.unix && features.system-jpeg && libs.webengine-jpeglib",
"output": [ "privateFeature" ]
},
"webengine-system-re2": {
"label": "re2",
"condition": "config.unix && libs.webengine-re2",
"output": [ "privateFeature" ]
},
"webengine-system-icu": {
"label": "icu",
"autoDetect": "false",
"condition": "libs.webengine-icu",
"output": [ "privateFeature" ]
},
"webengine-system-libwebp": {
"label": "libwebp, libwebpmux and libwebpdemux",
"condition": "config.unix && libs.webengine-webp",
"output": [ "privateFeature" ]
},
"webengine-system-opus": {
"label": "opus",
"condition": "config.unix && libs.webengine-opus",
"output": [ "privateFeature" ]
},
"webengine-system-ffmpeg": {
"label": "ffmpeg",
"autoDetect": "false",
"condition": "libs.webengine-ffmpeg && features.webengine-system-opus && features.webengine-system-libwebp",
"output": [ "privateFeature" ]
},
"webengine-system-libxml2": {
"label": "libxml2 and libxslt",
"condition": "config.unix && libs.webengine-libxml2",
"output": [ "privateFeature" ]
},
"webengine-system-lcms2" : {
"label": "lcms2",
"condition": "config.unix && libs.webengine-lcms2",
"output": [ "privateFeature" ]
},
"webengine-system-freetype" : {
"label": "freetype",
"condition": "config.unix && features.system-freetype && libs.webengine-freetype",
"output": [ "privateFeature" ]
},
"webengine-system-libvpx" : {
"label": "libvpx",
"condition": "config.unix && libs.webengine-libvpx",
"output": [ "privateFeature" ]
},
"webengine-system-snappy" : {
"label": "snappy",
"condition": "config.unix && libs.webengine-snappy",
"output": [ "privateFeature" ]
},
"webengine-winversion" : {
"label": "winversion",
"condition": "config.win32 && tests.webengine-winversion",
"output": [ "privateFeature" ]
},
"webengine-win-compiler64": {
"label": "64bit compiler",
"condition": "config.win32 && tests.webengine-win-compiler64",
"output": [ "privateFeature" ]
},
"webengine-submodule": {
"label": "submodule",
"condition": "tests.webengine-submodule",
"output": [ "privateFeature" ]
},
"webengine-nowhitespace": {
"label": "nowhitespace",
"condition" : "tests.webengine-nowhitespace",
"output": [ "privateFeature" ]
},
"webengine-arch-support": {
"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": [
{
"type": "skipBuildWarning",
"condition": "!features.webengine-core-support && (features.build-qtwebengine-core || features.build-qtpdf)",
"message": "qtwebengine_confCheckError"
},
{
"type": "note",
"condition": "features.webengine-core-support && !features.build-qtwebengine-core",
"message": "QtWebEngine build is disabled by user."
},
{
"type": "note",
"condition": "features.webengine-core-support && !features.build-qtpdf",
"message": "QtPdf build is disabled by user."
},
{
"type": "warning",
"condition": "!features.webengine-core-support && features.build-qtwebengine-core",
"message": "QtWebEngine will not be built."
},
{
"type": "warning",
"condition": "!features.webengine-core-support && features.build-qtpdf",
"message": "QtPdf will not be built."
}
],
"summary": [
{
"section": "Qt WebEngine Build Tools",
"entries": [
"webengine-system-ninja",
"webengine-system-gn",
{
"message": "Jumbo Build Merge Limit",
"type": "jumboBuild"
},
"webengine-developer-build",
{
"section": "QtWebEngine required system libraries",
"condition": "config.unix && !config.macos",
"entries": [
"webengine-system-fontconfig",
"webengine-system-dbus",
"webengine-system-nss",
"webengine-system-khr",
"webengine-system-glibc"
]
},
{
"section": "QtWebEngine required system libraries for qpa-xcb",
"condition": "config.unix && !config.macos && features.xcb",
"entries": [
"webengine-system-x11",
"webengine-system-libdrm",
"webengine-system-xcomposite",
"webengine-system-xcursor",
"webengine-system-xi",
"webengine-system-xtst"
]
},
{
"section": "Optional system libraries used",
"condition": "config.unix",
"entries": [
"webengine-system-re2",
"webengine-system-icu",
"webengine-system-libwebp",
"webengine-system-opus",
"webengine-system-ffmpeg",
"webengine-system-libvpx",
"webengine-system-snappy",
"webengine-system-glib",
"webengine-system-zlib",
"webengine-system-minizip",
"webengine-system-libevent",
"webengine-system-jsoncpp",
"webengine-system-protobuf",
"webengine-system-libxml2",
"webengine-system-lcms2",
"webengine-system-png",
"webengine-system-jpeg",
"webengine-system-harfbuzz",
"webengine-system-freetype"
]
}
]
}
]
}