summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2016-09-09 09:50:08 +0200
committerLars Knoll <lars.knoll@qt.io>2016-09-15 08:23:53 +0000
commit2d3c73fcfe7a93cb46190e8e82410fe93145dbe0 (patch)
tree0ef9b0903113bfb945dabc17654e1695872d5605
parentfc098de70a5dda5f45ebe238a43f24f674426f3d (diff)
Modularize configure.json/.pri
Move the different parts of configure.json/.pri into the libraries where they belong. Gui is not yet fully modularized, and contains many things related to the different QPA plugins. Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--configure.json1705
-rw-r--r--configure.pri173
-rw-r--r--examples/gui/gui.pro4
-rw-r--r--examples/network/network.pro1
-rw-r--r--mkspecs/features/ctest_testcase_common.prf1
-rw-r--r--src/3rdparty/freetype/freetype.pro2
-rw-r--r--src/3rdparty/pcre_dependency.pri6
-rw-r--r--src/angle/src/common/common.pri1
-rw-r--r--src/angle/src/compiler/preprocessor/preprocessor.pro1
-rw-r--r--src/angle/src/compiler/translator.pro1
-rw-r--r--src/corelib/configure.json434
-rw-r--r--src/corelib/global/qglobal.h2
-rw-r--r--src/corelib/global/qglobal_p.h1
-rw-r--r--src/gui/configure.json905
-rw-r--r--src/gui/configure.pri67
-rw-r--r--src/gui/kernel/qtguiglobal.h1
-rw-r--r--src/gui/kernel/qtguiglobal_p.h1
-rw-r--r--src/network/configure.json216
-rw-r--r--src/network/configure.pri12
-rw-r--r--src/network/kernel/qtnetworkglobal.h1
-rw-r--r--src/network/kernel/qtnetworkglobal_p.h1
-rw-r--r--src/network/ssl/qsslcertificate.cpp2
-rw-r--r--src/platformsupport/fbconvenience/qfbvthandler_p.h1
-rw-r--r--src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h1
-rw-r--r--src/plugins/bearer/bearer.pro1
-rw-r--r--src/plugins/generic/generic.pro1
-rw-r--r--src/plugins/imageformats/imageformats.pro1
-rw-r--r--src/plugins/platforminputcontexts/platforminputcontexts.pro1
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro1
-rw-r--r--src/plugins/platforms/platforms.pro1
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro1
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.h1
-rw-r--r--src/plugins/platforms/xcb/xcb.pro1
-rw-r--r--src/plugins/platformthemes/platformthemes.pro3
-rw-r--r--src/plugins/printsupport/printsupport.pro2
-rw-r--r--src/plugins/sqldrivers/sqldrivers.pro1
-rw-r--r--src/printsupport/configure.json42
-rw-r--r--src/printsupport/kernel/qtprintsupportglobal.h1
-rw-r--r--src/sql/configure.json201
-rw-r--r--src/sql/configure.pri89
-rw-r--r--src/src.pro4
-rw-r--r--src/widgets/configure.json97
-rw-r--r--src/widgets/configure.pri8
-rw-r--r--src/widgets/kernel/qtwidgetsglobal.h1
-rw-r--r--src/widgets/kernel/qtwidgetsglobal_p.h1
-rw-r--r--src/widgets/styles/styles.pri2
-rw-r--r--tests/auto/corelib/json/json.pro2
-rw-r--r--tests/auto/corelib/tools/qcollator/qcollator.pro2
-rw-r--r--tests/auto/corelib/tools/qstring/qstring.pro2
-rw-r--r--tests/auto/gui/image/qmovie/qmovie.pro1
-rw-r--r--tests/auto/network/access/qnetworkreply/test/test.pro1
-rw-r--r--tests/auto/network/socket/socket.pro2
-rw-r--r--tests/auto/network/ssl/ssl.pro2
-rw-r--r--tests/auto/other/other.pro2
-rw-r--r--tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro1
-rw-r--r--tests/benchmarks/gui/image/qimagereader/qimagereader.pro1
-rw-r--r--tests/benchmarks/network/network.pro2
57 files changed, 2141 insertions, 1878 deletions
diff --git a/configure.json b/configure.json
index 46f94573cf..2c37957914 100644
--- a/configure.json
+++ b/configure.json
@@ -6,18 +6,19 @@
"privatePro": "mkspecs/qmodule.pri"
},
+ "subconfigs": [
+ "src/corelib",
+ "src/network",
+ "src/sql",
+ "src/gui",
+ "src/widgets",
+ "src/printsupport"
+ ],
+
"commandline": {
"assignments": {
"DBUS_HOST_PATH": "host_dbus.prefix",
"DBUS_PATH": "dbus.prefix",
- "MYSQL_PATH": "mysql.prefix",
- "OPENSSL_LIBS": "openssl.libs",
- "OPENSSL_LIBS_DEBUG": "openssl.libs.debug",
- "OPENSSL_LIBS_RELEASE": "openssl.libs.release",
- "OPENSSL_PATH": "openssl.prefix",
- "PSQL_LIBS": "psql.libs",
- "SYBASE": "tds.prefix",
- "SYBASE_LIBS": "tds.libs",
"ZLIB_LIBS": "zlib.libs"
},
"custom": "qmakeArgs",
@@ -51,12 +52,10 @@
"android-ndk-host": "string",
"android-ndk-platform": "string",
"android-sdk": "string",
- "android-style-assets": "boolean",
"android-toolchain-version": "string",
"accessibility": "boolean",
"alsa": "boolean",
- "angle": "boolean",
"audio-backend": "boolean",
"avx": "boolean",
"avx2": "boolean",
@@ -66,7 +65,6 @@
"compile-examples": { "type": "boolean", "name": "compile_examples" },
"confirm-license": "void",
"continue": "void",
- "cups": "boolean",
"dbus": { "type": "optionalString", "values": [ "no", "yes", "linked", "runtime" ] },
"dbus-linked": { "type": "void", "name": "dbus", "value": "linked" },
"dbus-runtime": { "type": "void", "name": "dbus", "value": "runtime" },
@@ -75,78 +73,36 @@
"developer-build": "void",
"device": "string",
"device-option": "string",
- "directfb": "boolean",
- "directwrite": "boolean",
- "doubleconversion": { "type": "enum", "values": [ "no", "qt", "system" ] },
- "egl": "boolean",
- "eglfs": "boolean",
- "evdev": "boolean",
- "eventfd": "boolean",
- "fontconfig": "boolean",
"force-asserts": { "type": "boolean", "name": "force_asserts" },
"force-debug-info": { "type": "boolean", "name": "force_debug_info" },
"force-pkg-config": { "type": "void", "name": "pkg-config" },
"framework": "boolean",
- "freetype": { "type": "enum", "values": [ "no", "qt", "system" ] },
- "gbm": "boolean",
"gcc-sysroot": "boolean",
"gcov": "boolean",
- "gif": "boolean",
- "glib": "boolean",
"gnumake": { "type": "boolean", "name": "GNUmake" },
"gstreamer": { "type": "optionalString", "values": [ "no", "yes", "0.10", "1.0" ] },
- "gtk": { "type": "boolean", "name": "gtk3" },
"gui": "boolean",
- "harfbuzz": { "type": "enum", "values": [ "no", "qt", "system" ] },
"headersclean": "boolean",
"host-option": "string",
- "ico": "boolean",
- "iconv": { "type": "enum", "values": [ "no", "yes", "posix", "sun", "gnu" ] },
- "icu": "boolean",
- "imf": { "type": "boolean", "name": "qqnx_imf" },
"incredibuild-xge": { "type": "boolean", "name": "incredibuild_xge" },
- "inotify": "boolean",
- "journald": "boolean",
- "lgmon": "boolean",
- "libinput": "boolean",
- "libjpeg": { "type": "enum", "values": [ "no", "qt", "system" ] },
- "libpng": { "type": "enum", "values": [ "no", "qt", "system" ] },
- "libproxy": "boolean",
"libudev": "boolean",
- "linuxfb": "boolean",
"ltcg": "boolean",
- "kms": "boolean",
"make": { "type": "addString", "values": [ "examples", "libs", "tests", "tools" ] },
"make-tool": "string",
"mips_dsp": "boolean",
"mips_dspr2": "boolean",
- "mirclient": "boolean",
"mp": { "type": "boolean", "name": "msvc_mp" },
- "mtdev": "boolean",
- "mysql_config": "string",
"nomake": { "type": "addString", "values": [ "examples", "tests", "tools" ] },
- "opengl": { "type": "optionalString", "values": [ "no", "yes", "desktop", "es2", "dynamic" ] },
- "opengl-es-2": { "type": "void", "name": "opengl", "value": "es2" },
- "opengles3": "boolean",
"opensource": { "type": "void", "name": "commercial", "value": "no" },
- "openssl": { "type": "optionalString", "values": [ "no", "yes", "linked", "runtime" ] },
- "openssl-linked": { "type": "void", "name": "openssl", "value": "linked" },
- "openssl-runtime": { "type": "void", "name": "openssl", "value": "runtime" },
"optimized-qmake": { "type": "boolean", "name": "release_tools" },
"optimized-tools": { "type": "boolean", "name": "release_tools" },
"pch": { "type": "boolean", "name": "precompile_header" },
- "pcre": { "type": "enum", "values": [ "qt", "system" ] },
"pkg-config": "boolean",
"platform": "string",
"plugin-manifests": "boolean",
- "pps": { "type": "boolean", "name": "qqnx_pps" },
- "posix-ipc": { "type": "boolean", "name": "ipc_posix" },
"profile": "boolean",
- "psql_config": "string",
"pulseaudio": "boolean",
"qml-debug": "boolean",
- "qpa": { "type": "string", "name": "qpa_default_platform" },
- "qpa-platform-guard": "boolean",
"qreal": "string",
"qtlibinfix": { "type": "string", "name": "qt_libinfix" },
"qtnamespace": { "type": "string", "name": "qt_namespace" },
@@ -156,70 +112,28 @@
"rpath": "boolean",
"rtti": "boolean",
"sanitize": "sanitize",
- "sctp": "boolean",
"sdk": "string",
- "securetransport": "boolean",
"separate-debug-info": { "type": "boolean", "name": "separate_debug_info" },
"shared": "boolean",
"silent": "void",
- "slog2": "boolean",
- "sm": { "type": "boolean", "name": "sessionmanager" },
- "sql-db2": "boolean",
- "sql-ibase": "boolean",
- "sql-mysql": "boolean",
- "sql-oci": "boolean",
- "sql-odbc": "boolean",
- "sql-psql": "boolean",
- "sql-sqlite": "boolean",
- "sql-sqlite2": "boolean",
- "sql-tds": "boolean",
- "plugin-sql-db2": { "type": "void", "name": "sql-db2" },
- "plugin-sql-ibase": { "type": "void", "name": "sql-ibase" },
- "plugin-sql-mysql": { "type": "void", "name": "sql-mysql" },
- "plugin-sql-oci": { "type": "void", "name": "sql-oci" },
- "plugin-sql-odbc": { "type": "void", "name": "sql-odbc" },
- "plugin-sql-psql": { "type": "void", "name": "sql-psql" },
- "plugin-sql-sqlite": { "type": "void", "name": "sql-sqlite" },
- "plugin-sql-sqlite2": { "type": "void", "name": "sql-sqlite2" },
- "plugin-sql-tds": { "type": "void", "name": "sql-tds" },
"qdbus": { "type": "boolean", "name": "dbus" },
- "sqlite": { "type": "enum", "name": "system-sqlite", "values": { "qt": "no", "system": "yes" } },
"sse2": "boolean",
"sse3": "boolean",
"sse4.1": { "type": "boolean", "name": "sse4_1" },
"sse4.2": { "type": "boolean", "name": "sse4_2" },
- "ssl": "boolean",
"ssse3": "boolean",
"static": { "type": "enum", "name": "shared", "values": { "yes": "no", "no": "yes" } },
"static-runtime": { "type": "boolean", "name": "static_runtime" },
"strip": "boolean",
- "style-windows": "boolean",
- "style-windowsxp": "boolean",
- "style-windowsvista": "boolean",
- "style-fusion": "boolean",
- "style-mac": "boolean",
- "style-android": "boolean",
"syncqt": "boolean",
- "syslog": "boolean",
"sysroot": "string",
- "system-proxies": "boolean",
"testcocoon": "boolean",
- "tslib": "boolean",
"use-gold-linker": { "type": "boolean", "name": "use_gold_linker" },
"warnings-are-errors": { "type": "boolean", "name": "warnings_are_errors" },
"Werror": { "type": "boolean", "name": "warnings_are_errors" },
"widgets": "boolean",
"wmf-backend": "boolean",
- "xcb": { "type": "enum", "values": [ "no", "yes", "qt", "system" ] },
- "xcb-xlib": "boolean",
- "xinput2": "boolean",
- "xkb": "boolean",
- "xkb-config-root": "string",
- "xkbcommon": { "type": "enum", "values": [ "no", "qt", "system" ] },
- "xkbcommon-evdev": "boolean",
- "xkbcommon-x11": { "type": "enum", "name": "xkbcommon", "values": [ "no", "qt", "system" ] },
"xplatform": "string",
- "xrender": "boolean",
"zlib": { "type": "enum", "name": "system-zlib", "values": { "system": "yes", "qt": "no" } }
},
"prefix": {
@@ -234,35 +148,6 @@
},
"libraries": {
- "libatomic": {
- "description": "64 bit atomics in libatomic",
- "test": "common/atomic64",
- "sources": [
- "-latomic"
- ]
- },
- "libdl": {
- "description": "dlopen() in libdl",
- "export": "",
- "test": "unix/dlopen",
- "sources": [
- "-ldl"
- ]
- },
- "doubleconversion": {
- "description": "DoubleConversion",
- "test": "unix/doubleconversion",
- "sources": [
- "-ldouble-conversion"
- ]
- },
- "pcre": {
- "description": "PCRE",
- "test": "unix/pcre",
- "sources": [
- "-lpcre16"
- ]
- },
"zlib": {
"description": "zlib",
"test": "unix/zlib",
@@ -271,106 +156,6 @@
{ "libs": "-lz", "condition": "!config.msvc" }
]
},
- "gnu_iconv": {
- "description": "GNU libiconv",
- "export": "iconv",
- "test": "unix/gnu-libiconv",
- "sources": [
- "-liconv"
- ]
- },
- "icu": {
- "description": "ICU",
- "export": "",
- "test": "unix/icu",
- "sources": [
- {
- "builds": {
- "debug": "-lsicuind -lsicuucd -lsicudtd",
- "release": "-lsicuin -lsicuuc -lsicudt"
- },
- "condition": "config.win32 && !features.shared"
- },
- { "libs": "-licuin -licuuc -licudt", "condition": "config.win32 && features.shared" },
- { "libs": "-licui18n -licuuc -licudata", "condition": "!config.win32" }
- ]
- },
- "network": {
- "export": "",
- "sources": [
- { "type": "makeSpec", "spec": "NETWORK" }
- ]
- },
- "corewlan": {
- "description": "CoreWLan",
- "export": "",
- "test": "mac/corewlan",
- "sources": [
- "-framework CoreWLAN -framework Foundation"
- ]
- },
- "openssl": {
- "description": "OpenSSL Libraries",
- "export": "",
- "sources": [
- { "type": "openssl" },
- {
- "comment": "placeholder for OPENSSL_LIBS{,_{DEBUG,RELEASE}}",
- "libs": "",
- "builds": {
- "debug": "",
- "release": ""
- },
- "condition": "config.win32 && !features.shared"
- },
- { "libs": "-lssleay32 -llibeay32", "condition": "config.win32 && features.shared" },
- { "libs": "-lssl -lcrypto", "condition": "!config.win32" }
- ]
- },
- "libproxy": {
- "description": "libproxy",
- "test": "common/libproxy",
- "sources": [
- "-lproxy"
- ]
- },
- "glib": {
- "description": "GLib",
- "test": "unix/glib",
- "sources": [
- { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" }
- ]
- },
- "gtk3": {
- "description": "GTK+",
- "sources": [
- { "type": "pkgConfig", "args": "gtk+-3.0" }
- ]
- },
- "cups": {
- "description": "CUPS",
- "test": "unix/cups",
- "sources": [
- "-lcups"
- ]
- },
- "libjpeg": {
- "description": "libjpeg",
- "test": "unix/libjpeg",
- "sources": [
- { "libs": "-llibjpeg", "condition": "config.msvc" },
- { "libs": "-ljpeg", "condition": "!config.msvc" }
- ]
- },
- "libpng": {
- "description": "libpng",
- "test": "unix/libpng",
- "sources": [
- { "type": "pkgConfig", "args": "libpng" },
- { "libs": "-llibpng", "condition": "config.msvc" },
- { "libs": "-lpng", "condition": "!config.msvc" }
- ]
- },
"alsa": {
"description": "ALSA",
"export": "",
@@ -404,29 +189,6 @@
"args": "gstreamer-0.10 gstreamer-base-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10" }
]
},
- "freetype": {
- "description": "FreeType",
- "export": "",
- "test": "unix/freetype",
- "sources": [
- "-lfreetype"
- ]
- },
- "fontconfig": {
- "description": "Fontconfig",
- "test": "unix/fontconfig",
- "sources": [
- { "type": "pkgConfig", "args": "fontconfig freetype2" },
- "-lfontconfig -lfreetype"
- ]
- },
- "harfbuzz": {
- "description": "HarfBuzz",
- "test": "unix/harfbuzz",
- "sources": [
- "-lharfbuzz"
- ]
- },
"dbus": {
"description": "D-Bus >= 1.2",
"test": "unix/dbus",
@@ -451,28 +213,6 @@
{ "libs": "", "comment": "placeholder for DBUS_HOST_PATH" }
]
},
- "libinput": {
- "description": "libinput",
- "test": "unix/libinput",
- "sources": [
- { "type": "pkgConfig", "args": "libinput" }
- ]
- },
- "mtdev": {
- "description": "mtdev",
- "export": "",
- "test": "unix/mtdev",
- "sources": [
- { "type": "pkgConfig", "args": "mtdev" }
- ]
- },
- "tslib": {
- "description": "tslib",
- "test": "unix/tslib",
- "sources": [
- "-lts"
- ]
- },
"libudev": {
"description": "udev",
"test": "unix/libudev",
@@ -480,284 +220,6 @@
{ "type": "pkgConfig", "args": "libudev" },
"-ludev"
]
- },
- "xkbcommon": {
- "description": "xkbcommon",
- "export": "xkbcommon_evdev",
- "test": "unix/xkbcommon",
- "sources": [
- { "type": "pkgConfig", "args": "xkbcommon" }
- ]
- },
- "xkbcommon_x11": {
- "description": "xkbcommon-x11 >= 0.4.1",
- "export": "xkbcommon",
- "sources": [
- { "type": "pkgConfig", "args": "xkbcommon xkbcommon-x11 >= 0.4.1" }
- ]
- },
- "xinput2": {
- "description": "Xinput2",
- "test": "x11/xinput2",
- "sources": [
- { "type": "pkgConfig", "args": "xi" },
- "-lXi"
- ]
- },
- "xrender": {
- "description": "XRender",
- "test": "x11/xrender",
- "sources": [
- "-lXrender"
- ]
- },
- "xcb": {
- "description": "XCB >= 1.5 (core)",
- "test": "qpa/xcb",
- "sources": [
- { "type": "pkgConfig", "args": "xcb >= 1.5" },
- "-lxcb"
- ]
- },
- "xcb_syslibs": {
- "description": "XCB (secondary)",
- "test": "qpa/xcb-syslibs",
- "sources": [
- { "type": "pkgConfig",
- "args": "xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape" },
- "-lxcb -lxcb-shm -lxcb-sync -lxcb-xfixes -lxcb-randr -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-shape"
- ]
- },
- "xcb_xlib": {
- "description": "XCB Xlib",
- "test": "qpa/xcb-xlib",
- "sources": [
- { "type": "pkgConfig", "args": "X11-xcb x11 xcb" },
- "-lxcb -lX11 -lX11-xcb"
- ]
- },
- "xcb_xkb": {
- "description": "XCB XKB >= 1.10",
- "test": "qpa/xcb-xkb",
- "sources": [
- { "type": "pkgConfig", "args": "xcb-xkb >= 1.10 xcb" },
- "-lxcb-xkb -lxcb"
- ]
- },
- "xcb_render": {
- "description": "XCB XRender",
- "test": "qpa/xcb-render",
- "sources": [
- { "type": "pkgConfig", "args": "xcb-renderutil xcb-render xcb" },
- "-lxcb-render-util -lxcb-render -lxcb"
- ]
- },
- "xcb_glx": {
- "description": "XCB GLX",
- "test": "qpa/xcb-glx",
- "sources": [
- { "type": "pkgConfig", "args": "xcb-glx xcb" },
- "-lxcb-glx -lxcb"
- ]
- },
- "x11sm": {
- "description": "X11 session management",
- "sources": [
- { "type": "pkgConfig", "args": "sm ice" }
- ]
- },
- "opengl": {
- "description": "Desktop OpenGL",
- "test": "unix/opengldesktop",
- "sources": [
- { "type": "pkgConfig", "args": "gl" },
- { "type": "makeSpec", "spec": "OPENGL" }
- ]
- },
- "opengl_es2": {
- "description": "OpenGL ES 2.0",
- "test": "unix/opengles2",
- "sources": [
- { "type": "pkgConfig", "args": "glesv2" },
- { "type": "makeSpec", "spec": "OPENGL_ES2" }
- ]
- },
- "egl": {
- "description": "EGL",
- "test": "qpa/egl",
- "sources": [
- { "type": "pkgConfig", "args": "egl" },
- { "type": "makeSpec", "spec": "EGL" }
- ]
- },
- "bcm_host": {
- "export": "",
- "sources": [
- "-lbcm_host"
- ]
- },
- "gbm": {
- "description": "GBM",
- "test": "qpa/gbm",
- "sources": [
- { "type": "pkgConfig", "args": "gbm" }
- ]
- },
- "drm": {
- "description": "KMS",
- "test": "qpa/kms",
- "sources": [
- { "type": "pkgConfig", "args": "libdrm" },
- "-ldrm"
- ]
- },
- "wayland_server": {
- "description": "Wayland Server",
- "export": "",
- "test": "qpa/wayland-server",
- "sources": [
- { "type": "pkgConfig", "args": "wayland-server" }
- ]
- },
- "directfb": {
- "description": "DirectFB",
- "test": "qpa/directfb",
- "sources": [
- { "type": "pkgConfig", "args": "directfb" }
- ]
- },
- "mirclient": {
- "description": "Mir client libraries",
- "export": "",
- "test": "qpa/mirclient",
- "sources": [
- { "type": "pkgConfig", "args": "egl mirclient ubuntu-platform-api" }
- ]
- },
- "directwrite": {
- "description": "DirectWrite",
- "export": "",
- "test": "win/directwrite",
- "sources": [
- "-ldwrite"
- ]
- },
- "journald": {
- "description": "journald",
- "test": "unix/journald",
- "export": "",
- "sources": [
- { "type": "pkgConfig", "args": "libsystemd" },
- { "type": "pkgConfig", "args": "libsystemd-journal" }
- ]
- },
- "slog2": {
- "description": "slog2",
- "test": "unix/slog2",
- "export": "",
- "sources": [
- "-lslog2"
- ]
- },
- "imf": {
- "description": "IMF",
- "export": "",
- "test": "unix/qqnx_imf",
- "sources": [
- "-linput_client"
- ]
- },
- "pps": {
- "description": "PPS",
- "test": "unix/pps",
- "sources": [
- "-lpps"
- ]
- },
- "lgmon": {
- "description": "lgmon",
- "test": "unix/lgmon",
- "sources": [
- "-llgmon"
- ]
- },
- "db2": {
- "description": "DB2 (IBM)",
- "test": "unix/db2",
- "sources": [
- { "libs": "-ldb2cli", "condition": "config.win32" },
- { "libs": "-ldb2", "condition": "!config.win32" }
- ]
- },
- "ibase": {
- "description": "InterBase",
- "test": "unix/ibase",
- "sources": [
- { "libs": "-lgds32_ms", "condition": "config.win32" },
- { "libs": "-lgds", "condition": "!config.win32" }
- ]
- },
- "mysql": {
- "description": "MySQL",
- "test": "unix/mysql",
- "sources": [
- { "type": "mysqlConfig", "query": "--libs_r" },
- { "type": "mysqlConfig", "query": "--libs" },
- { "libs": "-lmysqlclient_r", "condition": "!config.win32" },
- { "libs": "-llibmysql", "condition": "config.win32" },
- { "libs": "-lmysqlclient", "condition": "!config.win32" }
- ]
- },
- "psql": {
- "description": "PostgreSQL",
- "test": "unix/psql",
- "sources": [
- { "type": "psqlConfig" },
- { "type": "psqlEnv", "libs": "-llibpq -lws2_32 -ladvapi32", "condition": "config.win32" },
- { "type": "psqlEnv", "libs": "-lpq", "condition": "!config.win32" }
- ]
- },
- "tds": {
- "description": "TDS (Sybase)",
- "test": "unix/tds",
- "sources": [
- { "type": "sybaseEnv", "libs": "-lNTWDBLIB", "condition": "config.win32" },
- { "type": "sybaseEnv", "libs": "-lsybdb", "condition": "!config.win32" }
- ]
- },
- "oci": {
- "description": "OCI (Oracle)",
- "test": "unix/oci",
- "sources": [
- { "libs": "-loci", "condition": "config.win32" },
- { "libs": "-lclntsh", "condition": "!config.win32" }
- ]
- },
- "odbc": {
- "description": "ODBC",
- "test": "unix/odbc",
- "sources": [
- { "libs": "-lodbc32", "condition": "config.win32" },
- { "libs": "-liodbc", "condition": "config.darwin" },
- { "libs": "-lodbc", "condition": "!config.win32 && !config.darwin" }
- ]
- },
- "sqlite2": {
- "description": "SQLite (version 2)",
- "test": "unix/sqlite2",
- "sources": [
- "-lsqlite"
- ]
- },
- "sqlite3": {
- "description": "SQLite (version 3)",
- "export": "sqlite",
- "test": "unix/sqlite",
- "sources": [
- { "type": "pkgConfig", "args": "sqlite3" },
- { "libs": "-lsqlite3", "condition": "config.win32" },
- { "libs": "-lsqlite3 -lz", "condition": "!config.win32" }
- ]
}
},
@@ -768,14 +230,11 @@
"detectPkgConfig": [ "cross_compile" ],
"library": [ "pkg-config" ],
"getPkgConfigVariable": [ "pkg-config" ],
- "neon": [ "architecture" ],
- "directX": [ "architecture", "sse2" ]
+ "neon": [ "architecture" ]
},
"testTypeAliases": {
- "compile": [ "library", "architecture" ],
- "files": [ "directX" ],
- "getPkgConfigVariable": [ "xkbConfigRoot" ]
+ "compile": [ "library", "architecture" ]
},
"tests": {
@@ -859,26 +318,11 @@
"build_parts": {
"type": "buildParts"
},
- "dlopen": {
- "description": "dlopen() in libc",
- "type": "compile",
- "test": "unix/dlopen"
- },
"separate_debug_info": {
"description": "separate debug information support",
"type": "compile",
"test": "unix/objcopy"
},
- "atomic64": {
- "description": "64 bit atomics",
- "type": "compile",
- "test": "common/atomic64"
- },
- "atomicfptr": {
- "description": "working std::atomic for function pointers",
- "type": "compile",
- "test": "common/atomicfptr"
- },
"sse2": {
"description": "SSE2 instructions",
"type": "compile",
@@ -987,229 +431,21 @@
"type": "neon"
},
- "clock-gettime": {
- "description": "clock_gettime()",
- "type": "compile",
- "test": "unix/clock-gettime"
- },
- "clock-monotonic": {
- "description": "POSIX monotonic clock",
- "type": "compile",
- "test": "unix/clock-monotonic"
- },
- "evdev": {
- "description": "evdev",
- "type": "compile",
- "test": "unix/evdev"
- },
- "eventfd": {
- "description": "eventfd",
- "type": "compile",
- "test": "unix/eventfd"
- },
- "getaddrinfo": {
- "description": "getaddrinfo()",
- "type": "compile",
- "test": "unix/getaddrinfo",
- "use": "network"
- },
- "getifaddrs": {
- "description": "getifaddrs()",
- "type": "compile",
- "test": "unix/getifaddrs",
- "use": "network"
- },
- "inotify": {
- "description": "inotify",
- "type": "compile",
- "test": "unix/inotify"
- },
- "ipv6ifname": {
- "description": "IPv6 ifname",
- "type": "compile",
- "test": "unix/ipv6ifname",
- "use": "network"
- },
- "linuxfb": {
- "description": "LinuxFB",
- "type": "compile",
- "test": "qpa/linuxfb"
- },
"mremap": {
"description": "mremap()",
"type": "compile",
"test": "unix/mremap"
},
- "journald": {
- "description": "journald",
- "type": "compile",
- "test": "unix/journald"
- },
"posix_fallocate": {
"description": "POSIX fallocate()",
"type": "compile",
"test": "unix/posix_fallocate"
},
- "syslog": {
- "description": "syslog",
- "type": "compile",
- "test": "unix/syslog"
- },
"stack_protector": {
"description": "stack protection",
"type": "compilerSupportsFlag",
"test": "-fstack-protector-strong"
},
- "ipc_sysv": {
- "description": "SysV IPC",
- "type": "compile",
- "test": "unix/ipc_sysv"
- },
- "ipc_posix": {
- "description": "POSIX IPC",
- "type": "compile",
- "test": "unix/ipc_posix"
- },
- "ppoll": {
- "description": "ppoll()",
- "type": "compile",
- "test": "unix/ppoll"
- },
- "pollts": {
- "description": "pollts()",
- "type": "compile",
- "test": "unix/pollts"
- },
- "poll": {
- "description": "poll()",
- "type": "compile",
- "test": "unix/poll"
- },
- "cloexec": {
- "description": "O_CLOEXEC",
- "type": "compile",
- "test": "unix/cloexec"
- },
- "openssl": {
- "description": "OpenSSL",
- "type": "compile",
- "test": "unix/openssl"
- },
- "sctp": {
- "description": "SCTP support",
- "type": "compile",
- "test": "unix/sctp",
- "use": "network"
- },
- "posix-iconv": {
- "description": "POSIX iconv",
- "type": "compile",
- "test": "unix/iconv"
- },
- "sun-iconv": {
- "description": "SUN libiconv",
- "type": "compile",
- "test": "unix/sun-libiconv"
- },
- "egl-x11": {
- "description": "EGL on X11",
- "type": "compile",
- "test": "qpa/egl-x11",
- "use": "egl xcb_xlib"
- },
- "egl-brcm": {
- "description": "Broadcom EGL (Rasberry Pi)",
- "type": "compile",
- "test": "qpa/eglfs-brcm",
- "use": "egl bcm_host"
- },
- "egl-egldevice": {
- "description": "EGLDevice",
- "type": "compile",
- "test": "qpa/eglfs-egldevice",
- "use": "egl"
- },
- "egl-mali": {
- "description": "Mali EGL",
- "type": "compile",
- "test": "qpa/eglfs-mali",
- "use": "egl"
- },
- "egl-mali-2": {
- "description": "Mali 2 EGL",
- "type": "compile",
- "test": "qpa/eglfs-mali-2",
- "use": "egl"
- },
- "egl-viv": {
- "description": "i.Mx6 EGL",
- "type": "compile",
- "test": "qpa/eglfs-viv",
- "use": "egl"
- },
- "xlocalescanprint": {
- "description": "xlocale.h (or equivalents)",
- "type": "compile",
- "test": "common/xlocalescanprint"
- },
- "xlib": {
- "description": "XLib",
- "type": "compile",
- "test": "x11/xlib"
- },
- "x11prefix": {
- "description": "X11 prefix",
- "type": "getPkgConfigVariable",
- "pkg-config-args": "x11",
- "pkg-config-variable": "prefix",
- "value": "/usr",
- "log": "value"
- },
- "xkbconfigroot": {
- "description": "XKB config root",
- "type": "xkbConfigRoot",
- "pkg-config-args": "xkeyboard-config",
- "pkg-config-variable": "xkb_base",
- "log": "value"
- },
- "directx": {
- "description": "DirectX SDK",
- "type": "directX",
- "files": [
- "d3dcompiler.h",
- "d3d11.lib",
- "fxc.exe"
- ]
- },
- "opengles3": {
- "description": "OpenGL ES 3.0",
- "type": "compile",
- "test": "unix/opengles3",
- "use": "opengl_es2"
- },
- "opengles31": {
- "description": "OpenGL ES 3.1",
- "type": "compile",
- "test": "unix/opengles31",
- "use": "opengl_es2"
- },
- "directwrite2": {
- "description": "DirectWrite 2",
- "type": "compile",
- "test": "win/directwrite2",
- "use": "directwrite"
- },
- "uxtheme": {
- "description": "uxtheme.h",
- "type": "files",
- "files": [ "uxtheme.h" ]
- },
- "direct2d": {
- "description": "Direct 2D",
- "type": "compile",
- "test": "qpa/direct2d",
- "use": "direct2d"
- },
"incredibuild_xge": {
"description": "IncrediBuild",
"type": "files",
@@ -1219,11 +455,6 @@
"description": "WMF",
"type": "files",
"files": [ "mfapi.h", "mf.lib" ]
- },
- "qpa_default_platform": {
- "description": "default QPA platform",
- "type": "qpaDefaultPlatform",
- "log": "value"
}
},
@@ -1290,7 +521,6 @@
"description": "Have valid makespec",
"condition": "tests.verifyspec"
},
-
"developer-build": {
"description": "Developer build",
"autoDetect": false,
@@ -1514,31 +744,12 @@
{ "type": "define", "name": "QT_REDUCE_RELOCATIONS" }
]
},
- "dlopen": {
- "description": "dlopen()",
- "condition": "tests.dlopen || libs.libdl",
- "output": [ { "type": "define", "negative": true, "name": "QT_NO_DYNAMIC_LIBRARY" } ]
- },
- "libdl": {
- "description": "dlopen() in libdl",
- "condition": "!tests.dlopen && libs.libdl",
- "output": [ { "type": "privateConfig", "negative": true } ]
- },
- "std-atomic64": {
- "description": "64 bit atomic operations",
- "condition": "tests.atomic64 || libs.libatomic",
- "output": [ { "type": "define", "negative": true, "name": "QT_NO_STD_ATOMIC64" } ]
- },
- "libatomic": {
- "description": "64 bit atomic operations in libatomic",
- "condition": "!tests.atomic64 && libs.libatomic",
- "output": [ "privateFeature" ]
- },
"sse2": {
"description": "SSE2",
"condition": "(arch.i386 || arch.x86_64) && tests.sse2",
"output": [
"privateConfig",
+ "privateFeature",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE2", "value": 1 }
]
},
@@ -1686,390 +897,40 @@
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_NEON", "value": 1 }
]
},
- "clock-gettime": {
- "description": "clock_gettime()",
- "condition": "tests.clock-gettime",
- "output": [ "privateFeature" ]
- },
- "clock-monotonic": {
- "description": "POSIX monotonic clock",
- "condition": "features.clock-gettime && tests.clock-monotonic",
- "output": [ "feature" ]
- },
"alsa": {
"description": "ALSA",
"condition": "libs.alsa",
"output": [ "feature" ]
},
- "evdev": {
- "description": "evdev",
- "condition": "tests.evdev",
- "output": [ "privateFeature" ]
- },
- "eventfd": {
- "description": "eventfd",
- "condition": "tests.eventfd",
- "output": [ "feature" ]
- },
- "gbm": {
- "description": "GBM",
- "condition": "libs.gbm",
- "output": [ "publicQtConfig" ]
- },
- "getaddrinfo": {
- "description": "getaddrinfo()",
- "condition": "tests.getaddrinfo",
- "output": [ "feature" ]
- },
- "getifaddrs": {
- "description": "getifaddrs()",
- "condition": "tests.getifaddrs",
- "output": [ "feature" ]
- },
- "inotify": {
- "description": "inotify",
- "condition": "tests.inotify",
- "output": [ "privateFeature", "feature" ]
- },
- "ipv6ifname": {
- "description": "IPv6 ifname",
- "condition": "tests.ipv6ifname",
- "output": [ "feature" ]
- },
- "libproxy": {
- "description": "libproxy",
- "autoDetect": false,
- "condition": "libs.libproxy",
- "output": [ "privateFeature" ]
- },
- "linuxfb": {
- "description": "LinuxFB",
- "condition": "tests.linuxfb",
- "output": [ "privateFeature" ]
- },
- "directfb": {
- "description": "DirectFB",
- "autoDetect": false,
- "condition": "libs.directfb",
- "output": [ "privateFeature" ]
- },
- "integrityfb": {
- "description": "INTEGRITY framebuffer",
- "condition": "config.integrity",
- "output": [ "privateFeature" ]
- },
- "kms": {
- "description": "KMS",
- "condition": "libs.drm",
- "output": [ "publicQtConfig" ]
- },
- "mirclient": {
- "description": "Mir client",
- "condition": "libs.mirclient",
- "output": [ "privateFeature" ]
- },
"mremap": {
"description": "mremap()",
"condition": "tests.mremap",
"output": [ "feature" ]
},
- "mtdev": {
- "description": "mtdev",
- "condition": "libs.mtdev",
- "output": [ "privateFeature" ]
- },
- "journald": {
- "description": "journald",
- "autoDetect": false,
- "condition": "libs.journald",
- "output": [ "privateConfig" ]
- },
"posix_fallocate": {
"description": "POSIX fallocate()",
"condition": "tests.posix_fallocate",
"output": [ "privateFeature" ]
},
- "syslog": {
- "description": "syslog",
- "autoDetect": false,
- "condition": "tests.syslog",
- "output": [ "privateConfig" ]
- },
"stack-protector-strong": {
"description": "stack protection",
"condition": "config.qnx && tests.stack_protector",
"output": [ "publicQtConfig" ]
},
- "slog2": {
- "description": "slog2",
- "condition": "libs.slog2",
- "emitIf": "config.qnx",
- "output": [ "privateConfig" ]
- },
- "qqnx_imf": {
- "description": "IMF",
- "emitIf": "config.qnx",
- "condition": "libs.imf",
- "output": [ "privateConfig" ]
- },
- "qqnx_pps": {
- "description": "PPS",
- "emitIf": "config.qnx",
- "condition": "libs.pps",
- "output": [ "privateConfig" ]
- },
- "lgmon": {
- "description": "lgmon",
- "emitIf": "config.qnx",
- "condition": "libs.lgmon",
- "output": [ "privateConfig" ]
- },
- "poll_ppoll": {
- "description": "Native ppoll()",
- "emitIf": "!config.win32",
- "condition": "tests.ppoll",
- "output": [ "privateFeature" ]
- },
- "poll_pollts": {
- "description": "Native pollts()",
- "emitIf": "!config.win32",
- "condition": "!features.poll_ppoll && tests.pollts",
- "output": [ "privateFeature" ]
- },
- "poll_poll": {
- "description": "Native poll()",
- "emitIf": "!config.win32",
- "condition": "!features.poll_ppoll && !features.poll_pollts && tests.poll",
- "output": [ "privateFeature" ]
- },
- "poll_select": {
- "description": "Emulated poll()",
- "emitIf": "!config.win32",
- "condition": "!features.poll_ppoll && !features.poll_pollts && !features.poll_poll",
- "output": [
- "privateFeature",
- { "type": "define", "name": "QT_NO_NATIVE_POLL" }
- ]
- },
- "ipc_posix": {
- "description": "Using POSIX IPC",
- "autoDetect": "!config.win32",
- "condition": "!tests.ipc_sysv && tests.ipc_posix",
- "output": [ { "type": "define", "name": "QT_POSIX_IPC" } ]
- },
- "systemsemaphore": {
- "description": "Enable QSystemSemaphore",
- "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix",
- "output": [ { "type": "define", "negative": true, "name": "QT_NO_SYSTEMSEMAPHORE" } ]
- },
- "sharedmemory": {
- "description": "Enable QSharedMemory",
- "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix",
- "output": [ { "type": "define", "negative": true, "name": "QT_NO_SHAREDMEMORY" } ]
- },
- "threadsafe-cloexec": {
- "description": "Threadsafe pipe creation",
- "condition": "tests.cloexec",
- "output": [
- "publicQtConfig",
- { "type": "define", "name": "QT_THREADSAFE_CLOEXEC", "value": 1 }
- ]
- },
- "tslib": {
- "description": "tslib",
- "condition": "libs.tslib",
- "output": [ "privateFeature" ]
- },
- "corewlan": {
- "description": "CoreWLan",
- "condition": "libs.corewlan",
- "emitIf": "config.darwin",
- "output": [ "feature", "privateFeature" ]
- },
- "securetransport": {
- "description": "SecureTransport",
- "disable": "input.securetransport == 'no' || input.ssl == 'no'",
- "condition": "config.darwin && (input.openssl == '' || input.openssl == 'no')",
- "output": [
- "privateFeature",
- { "type": "define", "name": "QT_SECURETRANSPORT" }
- ]
- },
- "openssl": {
- "description": "OpenSSL",
- "enable": "input.openssl == 'yes' || input.openssl == 'linked' || input.openssl == 'runtime'",
- "disable": "input.openssl == 'no' || input.ssl == 'no'",
- "autoDetect": "!config.winrt",
- "condition": "!features.securetransport && tests.openssl",
- "output": [
- "privateFeature",
- { "type": "publicQtConfig", "condition": "!features.openssl-linked" },
- { "type": "define", "negative": true, "name": "QT_NO_OPENSSL" }
- ]
- },
- "openssl-linked": {
- "description": " Qt directly linked to OpenSSL",
- "enable": "input.openssl == 'linked'",
- "disable": "input.openssl != 'linked'",
- "condition": "features.openssl && libs.openssl",
- "output": [
- "privateFeature",
- { "type": "varAssign", "name": "OPENSSL_LIBS", "value": "libs.openssl.libs", "eval": "true" },
- { "type": "varAssign", "name": "OPENSSL_LIBS_DEBUG", "value": "libs.openssl.builds.debug.libs",
- "eval": "true", "condition": "config.win32" },
- { "type": "varAssign", "name": "OPENSSL_LIBS_RELEASE", "value": "libs.openssl.builds.release.libs",
- "eval": "true", "condition": "config.win32" },
- { "type": "define", "name": "QT_LINKED_OPENSSL" }
- ]
- },
- "ssl": {
- "description": "SSL",
- "condition": "config.winrt || features.securetransport || features.openssl",
- "output": [ "publicFeature", "feature" ]
- },
- "sctp": {
- "description": "SCTP",
- "autoDetect": false,
- "condition": "tests.sctp",
- "output": [ "publicFeature", "feature" ]
- },
"accessibility": {
"description": "Accessibility",
"output": [ "publicFeature", "feature" ]
},
- "accessibility-atspi-bridge": {
- "description": "ATSPI Bridge",
- "condition": "features.accessibility && features.xcb && features.dbus",
- "output": [ "privateFeature", "feature" ]
- },
- "glib": {
- "description": "GLib",
- "autoDetect": "!config.win32",
- "condition": "libs.glib",
- "output": [ "privateFeature", "feature" ]
- },
- "gtk3": {
- "description": "GTK+",
- "autoDetect": "!config.darwin",
- "condition": "features.glib && libs.gtk3",
- "output": [ "privateFeature" ]
- },
- "icu": {
- "description": "ICU",
- "autoDetect": "!config.win32",
- "condition": "libs.icu",
- "output": [ "privateFeature" ]
- },
"pulseaudio": {
"description": "PulseAudio",
"condition": "libs.pulseaudio",
"output": [ "feature" ]
},
- "cups": {
- "description": "CUPS",
- "condition": "libs.cups",
- "output": [ "privateFeature", "feature" ]
- },
- "jpeg": {
- "description": "JPEG",
- "disable": "input.libjpeg == 'no'",
- "output": [
- "privateFeature",
- { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_JPEG" }
- ]
- },
- "system-jpeg": {
- "description": " Using system libjpeg",
- "disable": "input.libjpeg == 'qt'",
- "enable": "input.libjpeg == 'system'",
- "condition": "features.jpeg && libs.libjpeg",
- "output": [ "privateFeature" ]
- },
- "gif": {
- "description": "GIF",
- "output": [
- "privateFeature",
- { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_GIF" }
- ]
- },
- "png": {
- "description": "PNG",
- "disable": "input.libpng == 'no'",
- "output": [
- "privateFeature",
- { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_PNG" }
- ]
- },
- "system-png": {
- "description": " Using system libpng",
- "disable": "input.libpng == 'qt'",
- "enable": "input.libpng == 'system'",
- "condition": "features.png && libs.libpng",
- "output": [ "privateFeature" ]
- },
- "ico": {
- "description": "ICO",
- "output": [ "privateFeature", "feature" ]
- },
"system-zlib": {
"description": "Using system zlib",
"condition": "libs.zlib",
"output": [ "privateFeature" ]
},
- "iconv": {
- "description": "iconv",
- "condition": "features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv",
- "output": [ "privateFeature", "feature" ]
- },
- "posix-libiconv": {
- "description": "POSIX iconv",
- "enable": "input.iconv == 'posix'",
- "disable": "input.iconv == 'sun' || input.iconv == 'gnu' || input.iconv == 'no'",
- "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && tests.posix-iconv"
- },
- "sun-libiconv": {
- "description": "SUN iconv",
- "enable": "input.iconv == 'sun'",
- "disable": "input.iconv == 'posix' || input.iconv == 'gnu' || input.iconv == 'no'",
- "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && tests.sun-iconv",
- "output": [ "privateFeature", "publicQtConfig" ]
- },
- "gnu-libiconv": {
- "description": "GNU iconv",
- "enable": "input.iconv == 'gnu'",
- "disable": "input.iconv == 'posix' || input.iconv == 'sun' || input.iconv == 'no'",
- "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv",
- "output": [ "privateFeature" ]
- },
- "freetype": {
- "description": "FreeType",
- "output": [ "privateFeature", "feature" ]
- },
- "system-freetype": {
- "description": " Using system FreeType",
- "enable": "input.freetype == 'system'",
- "disable": "input.freetype == 'qt'",
- "autoDetect": "!config.win32",
- "condition": "features.freetype && libs.freetype",
- "output": [ "privateFeature" ]
- },
- "fontconfig": {
- "description": "Fontconfig",
- "condition": "!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig",
- "output": [ "privateFeature", "feature" ]
- },
- "harfbuzz": {
- "description": "HarfBuzz",
- "output": [ "privateFeature", "feature" ]
- },
- "system-harfbuzz": {
- "description": " Using system HarfBuzz",
- "enable": "input.harfbuzz == 'system'",
- "disable": "input.harfbuzz == 'qt'",
- "autoDetect": "!config.darwin && !config.win32",
- "condition": "features.harfbuzz && libs.harfbuzz",
- "output": [ "privateFeature" ]
- },
"concurrent": {
"description": "Qt Concurrent",
"output": [ "publicFeature", "feature" ]
@@ -2115,108 +976,11 @@
{ "type": "publicQtConfig", "negative": true }
]
},
- "system-proxies": {
- "description": "Use system proxies",
- "output": [ "privateFeature" ]
- },
- "egl": {
- "description": "EGL",
- "condition": "features.opengl && (features.angle || libs.egl)",
- "output": [ "privateFeature", "feature" ]
- },
- "egl_x11": {
- "description": "EGL on X11",
- "condition": "features.egl && tests.egl-x11",
- "output": [ "privateFeature" ]
- },
- "eglfs": {
- "description": "EGLFS",
- "autoDetect": "!config.android && !config.win32",
- "condition": "features.egl",
- "output": [ "privateFeature" ]
- },
- "eglfs_brcm": {
- "description": "EGLFS Rasberry Pi",
- "condition": "features.eglfs && tests.egl-brcm",
- "output": [ "privateFeature" ]
- },
- "eglfs_egldevice": {
- "description": "EGLFS EGLDevice",
- "condition": "features.eglfs && tests.egl-egldevice && features.kms",
- "output": [ "privateFeature" ]
- },
- "eglfs_gbm": {
- "description": "EGLFS GBM",
- "condition": "features.eglfs && features.gbm && features.kms",
- "output": [ "privateFeature" ]
- },
- "eglfs_mali": {
- "description": "EGLFS Mali",
- "condition": "features.eglfs && (tests.egl-mali || tests.egl-mali-2)",
- "output": [ "privateFeature" ]
- },
- "eglfs_viv": {
- "description": "EGLFS i.Mx6",
- "condition": "features.eglfs && tests.egl-viv",
- "output": [ "privateFeature" ]
- },
- "eglfs_viv_wl": {
- "description": "EGLFS i.Mx6 Wayland",
- "condition": "features.eglfs_viv && libs.wayland_server",
- "output": [ "privateFeature" ]
- },
"libudev": {
"description": "udev",
"condition": "libs.libudev",
"output": [ "privateFeature" ]
},
- "libinput": {
- "description": "libinput",
- "condition": "features.libudev && libs.libinput",
- "output": [ "privateFeature" ]
- },
- "xkbcommon-evdev": {
- "description": "xkbcommon-evdev",
- "condition": "libs.xkbcommon",
- "output": [ "privateFeature" ]
- },
- "xkbcommon-system": {
- "description": "Using system-provided xkbcommon",
- "emitIf": "features.xcb",
- "enable": "input.xkbcommon == 'system'",
- "disable": "input.xkbcommon == 'qt' || input.xkbcommon == 'no'",
- "condition": "libs.xkbcommon_x11",
- "output": [ "privateFeature" ]
- },
- "xkb-config-root": {
- "description": "XKB config root",
- "emitIf": "features.xcb",
- "condition": "features.xcb && !features.xkbcommon-system && tests.xkbconfigroot",
- "output": [ { "type": "varAssign", "name": "QMAKE_XKB_CONFIG_ROOT", "value": "tests.xkbconfigroot.value"} ]
- },
- "xinput2": {
- "description": "Xinput2",
- "condition": "libs.xinput2",
- "output": [ "privateFeature" ]
- },
- "doubleconversion": {
- "description": "DoubleConversion",
- "output": [ "privateFeature", "feature" ]
- },
- "system-doubleconversion": {
- "description": " Using system DoubleConversion",
- "enable": "input.doubleconversion == 'system'",
- "disable": "input.doubleconversion == 'qt'",
- "condition": "features.doubleconversion && libs.doubleconversion",
- "output": [ "privateFeature" ]
- },
- "system-pcre": {
- "description": "Using system PCRE",
- "disable": "input.pcre == 'qt'",
- "enable": "input.pcre == 'system'",
- "condition": "libs.pcre",
- "output": [ { "type": "privateConfig", "negative": true, "name": "pcre" } ]
- },
"gstreamer-1_0": {
"description": "GStreamer 1.0",
"disable": "input.gstreamer == '0.10' || input.gstreamer == 'no'",
@@ -2231,237 +995,10 @@
"condition": "!features.gstreamer-1_0 && libs.gstreamer_0_10",
"output": [ { "type": "publicQtConfig", "name": "gstreamer-0.10" } ]
},
- "xcb": {
- "description": "XCB",
- "autoDetect": "!config.darwin",
- "condition": "libs.xcb",
- "output": [ "privateFeature" ]
- },
- "system-xcb": {
- "description": "Using system provided XCB libraries",
- "enable": "input.xcb == 'system' || input.xcb == 'yes'",
- "disable": "input.xcb == 'qt' || input.xcb == 'no'",
- "autoDetect": "!config.darwin",
- "condition": "libs.xcb && libs.xcb_syslibs",
- "output": [ "privateFeature" ]
- },
- "xcb-render": {
- "description": "XCB render",
- "emitIf": "features.system-xcb",
- "condition": "libs.xcb_render",
- "output": [ "privateFeature" ]
- },
- "xcb-glx": {
- "description": "XCB GLX",
- "emitIf": "features.xcb",
- "condition": "libs.xcb_glx",
- "output": [ "privateFeature" ]
- },
- "xcb-xlib": {
- "description": "XCB Xlib",
- "emitIf": "features.xcb",
- "condition": "libs.xcb_xlib",
- "output": [ "privateFeature" ]
- },
- "xcb-sm": {
- "description": "xcb-sm",
- "emitIf": "features.xcb",
- "condition": "features.sessionmanager && libs.x11sm",
- "output": [ "privateFeature" ]
- },
- "xkb": {
- "description": "XCB XKB",
- "condition": "features.system-xcb && libs.xcb_xkb",
- "output": [ "privateFeature" ]
- },
- "xlib": {
- "description": "XLib",
- "condition": "tests.xlib",
- "output": [ "privateFeature" ]
- },
- "xrender": {
- "description": "Xrender",
- "condition": "libs.xrender",
- "output": [ "privateFeature", "feature" ]
- },
- "x11-prefix": {
- "description": "X11 prefix",
- "emitIf": "features.xcb",
- "output": [ { "type": "varAssign", "name": "QMAKE_X11_PREFIX", "value": "tests.x11prefix.value" } ]
- },
- "angle": {
- "description": "ANGLE",
- "autoDetect": "features.opengles2 || features.opengl-dynamic",
- "condition": "config.win32 && tests.directx",
- "output": [
- "publicFeature",
- { "type": "define", "name": "QT_OPENGL_ES_2_ANGLE" }
- ]
- },
- "opengles2": {
- "description": "OpenGL ES 2.0",
- "enable": "input.opengl == 'es2'",
- "disable": "input.opengl == 'desktop' || input.opengl == 'dynamic' || input.opengl == 'no'",
- "condition": "config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)",
- "output": [
- "publicFeature",
- "publicQtConfig",
- { "type": "define", "name": "QT_OPENGL_ES" },
- { "type": "define", "name": "QT_OPENGL_ES_2" }
- ]
- },
- "opengles3": {
- "description": "OpenGL ES 3.0",
- "condition": "features.opengles2 && !features.angle && tests.opengles3",
- "output": [
- "publicFeature",
- { "type": "define", "name": "QT_OPENGL_ES_3" }
- ]
- },
- "opengles31": {
- "description": "OpenGL ES 3.1",
- "condition": "features.opengles3 && tests.opengles31",
- "output": [
- "publicFeature",
- { "type": "define", "name": "QT_OPENGL_ES_3_1" }
- ]
- },
- "opengl-desktop": {
- "description": "Desktop OpenGL",
- "enable": "input.opengl == 'desktop'",
- "disable": "input.opengl == 'es2' || input.opengl == 'dynamic' || input.opengl == 'no'",
- "condition": "(config.win32 && !config.winrt && !features.opengles2 && (config.msvc || libs.opengl))
- || (!config.watchos && !config.win32 && libs.opengl)"
- },
- "opengl-dynamic": {
- "description": "Dynamic OpenGL",
- "enable": "input.opengl == 'dynamic'",
- "autoDetect": false,
- "condition": "config.win32 && !config.winrt",
- "output": [
- { "type": "publicFeature", "name": "dynamicgl" },
- { "type": "define", "name": "QT_OPENGL_DYNAMIC" }
- ]
- },
- "opengl": {
- "description": "OpenGL",
- "condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2",
- "output": [ "publicFeature", "feature" ]
- },
- "sql-db2": {
- "description": "DB2 (IBM)",
- "condition": "libs.db2",
- "output": [ "publicFeature" ]
- },
- "sql-ibase": {
- "description": "InterBase",
- "condition": "libs.ibase",
- "output": [ "publicFeature" ]
- },
- "sql-mysql": {
- "description": "MySql",
- "condition": "libs.mysql",
- "output": [ "publicFeature" ]
- },
- "use_libmysqlclient_r": {
- "description": "MySql (threadsafe)",
- "condition": "features.sql-mysql && (libs.mysql.source == 0 || libs.mysql.source == 2)",
- "output": [ "privateConfig" ]
- },
- "sql-oci": {
- "description": "OCI (Oracle)",
- "condition": "libs.oci",
- "output": [ "publicFeature" ]
- },
- "sql-odbc": {
- "description": "ODBC",
- "condition": "libs.odbc",
- "output": [ "publicFeature" ]
- },
- "sql-psql": {
- "description": "PostgreSQL",
- "condition": "libs.psql",
- "output": [ "publicFeature" ]
- },
- "sql-sqlite2": {
- "description": "SQLite2",
- "condition": "libs.sqlite2",
- "output": [ "publicFeature" ]
- },
- "sql-sqlite": {
- "description": "SQLite",
- "output": [ "publicFeature" ]
- },
- "system-sqlite": {
- "description": " Using system provided SQLite",
- "autoDetect": false,
- "condition": "features.sql-sqlite && libs.sqlite3",
- "output": [ "publicQtConfig" ]
- },
- "sql-tds": {
- "description": "TDS (Sybase)",
- "condition": "libs.tds",
- "output": [ "publicFeature" ]
- },
- "style-fusion": {
- "description": "Fusion Style",
- "output": [ "styles" ]
- },
- "style-mac": {
- "description": "Mac Style",
- "condition": "config.osx",
- "output": [ "styles" ]
- },
- "style-windows": {
- "description": "Windows Style",
- "output": [ "styles" ]
- },
- "style-windowsxp": {
- "description": "Windows XP Style",
- "condition": "features.style-windows && config.win32 && !config.winrt && tests.uxtheme",
- "output": [ "styles" ]
- },
- "style-windowsvista": {
- "description": "Windows Vista Style",
- "condition": "features.style-windowsxp",
- "output": [ "styles" ]
- },
- "style-android": {
- "description": "Android Style",
- "autoDetect": "config.android",
- "output": [ "styles" ]
- },
- "android-style-assets": {
- "description": "Android Style Assets",
- "condition": "features.style-android",
- "output": [ "privateConfig" ]
- },
"audio-backend": {
"description": "Audio backend",
"output": [ "publicQtConfig" ]
},
- "directwrite": {
- "description": "DirectWrite",
- "emitIf": "config.win32",
- "condition": "libs.directwrite",
- "output": [ "privateFeature" ]
- },
- "directwrite2": {
- "description": "DirectWrite 2",
- "emitIf": "config.win32",
- "condition": "features.directwrite && tests.directwrite2",
- "output": [ "privateFeature" ]
- },
- "direct2d": {
- "description": "Direct 2D",
- "autoDetect": false,
- "condition": "tests.direct2d",
- "output": [ "privateFeature" ]
- },
- "sessionmanager": {
- "description": "Session Management",
- "output": [ "feature" ]
- },
"qml-debug": {
"description": "QML debugging",
"output": [ { "type": "publicQtConfig", "negative": true } ]
@@ -2496,23 +1033,6 @@
"condition": "tests.wmf",
"output": [ "publicQtConfig" ]
},
- "qpa_default_platform": {
- "description": "QPA default platform",
- "condition": "features.gui",
- "output": [
- { "type": "define", "name": "QT_QPA_DEFAULT_PLATFORM_NAME", "value": "tests.qpa_default_platform.name" },
- { "type": "varAssign", "public": true, "name": "QT_DEFAULT_QPA_PLUGIN", "value": "tests.qpa_default_platform.plugin",
- "condition": "!features.shared" }
- ]
- },
- "mimetype": {
- "description": "Mimetype handling",
- "output": [ "publicFeature", "feature" ]
- },
- "qeventtransition": {
- "description": "QEventTransition class",
- "output": [ "publicFeature" ]
- },
"extra_features": {
"comment": "### remove, once qfeatures.txt is ported to the new system",
"output": [ "extraFeatures" ]
@@ -2534,11 +1054,6 @@ Qt can be built in release mode with separate debug information, so
},
{
"type": "error",
- "condition": "input.xcb != '' && input.xcb != 'no' && input.xkbcommon == 'no'",
- "message": "XCB plugin requires libxkbcommon. See -qt-xkbcommon-x11 and -system-xkbcommon-x11."
- },
- {
- "type": "error",
"condition": "(features.rpath || features.rpath_dir) && !features.shared",
"message": "Static builds don't support RPATH"
},
@@ -2559,33 +1074,10 @@ or compile needed modules into the library."
},
{
"type": "note",
- "condition": "features.journald || features.syslog || (config.qnx && features.slog2)",
- "message": "journald, syslog or slog2 integration is enabled.
-If your users intend to develop applications against this build,
-ensure that the IDEs they use either set QT_LOGGING_TO_CONSOLE to 1
-or are able to read the logged output from journald, syslog or slog2."
- },
- {
- "type": "note",
"condition": "features.release_tools && (!features.debug || features.debug_and_release)",
"message": "-optimized-tools is not useful in -release mode."
},
{
- "type": "warning",
- "condition": "config.win32 && !config.msvc && features.sql-oci",
- "message": "Qt does not support compiling the Oracle database driver with
-MinGW, due to lack of such support from Oracle. Consider disabling the
-Oracle driver, as the current build will most likely fail."
- },
- {
- "type": "warning",
- "condition": "features.gui && config.linux && !features.xcb && !features.eglfs && !features.directfb && !features.linuxfb && !features.mirclient",
- "message": "No QPA platform plugin enabled! This will
-produce a Qt that cannot run GUI applications.
-The dependencies needed for xcb to build are listed in
-src/plugins/platforms/xcb/README"
- },
- {
"type": "note",
"condition": "input.qreal == 'double' && arch.arm",
"message": "Qt is using double for qreal on this system. This is binary-incompatible against Qt 5.1.
@@ -2593,67 +1085,10 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5
},
{
"type": "warning",
- "condition": "features.xcb && !features.xkbcommon-system && !features.xkb-config-root",
- "message": "Could not find XKB config root, use -xkb-config-root to set a path to
-XKB configuration data. This is required for keyboard input support."
- },
- {
- "type": "note",
- "condition": "features.openssl-linked && libs.openssl.source != 0
- && input.openssl.prefix == '' && input.openssl.libs == '' && input.openssl.libs.debug == ''",
- "message": "When linking against OpenSSL, you can override the default
-library names through OPENSSL_LIBS.
-For example:
- OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
- },
- {
- "type": "warning",
- "condition": "input.qpa-platform-guard != ''",
- "message": "The [-no]-qpa-platform-guard argument is deprecated and has no effect."
- },
- {
- "type": "warning",
"condition": "!features.accessibility",
"message": "Accessibility disabled. This configuration of Qt is unsupported."
},
{
- "type": "warning",
- "condition": "config.win32 && (features.opengles2 || features.opengl-dynamic) && !features.angle",
- "message": "Using OpenGL ES 2.0 on Windows without ANGLE.
-The build will most likely fail.
-Specify -opengl desktop to use regular OpenGL."
- },
- {
- "type": "note",
- "condition": "features.accessibility && features.xcb && !features.accessibility-atspi-bridge",
- "message": "Disabling Linux Accessibility Bridge: D-Bus is missing."
- },
- {
- "type": "warning",
- "condition": "config.darwin && features.system-harfbuzz",
- "message": "On OS X, AAT is supported only with -qt-harfbuzz."
- },
- {
- "type": "error",
- "condition": "features.gui && !config.watchos && input.opengl != 'no' && !features.opengl-desktop && !features.opengles2 && !features.opengl-dynamic",
- "message": "The OpenGL functionality tests failed!
-You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
-QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform."
- },
- {
- "type": "error",
- "condition": "input.doubleconversion == 'no' && !tests.xlocalescanprint",
- "message": "Your C library does not provide sscanf_l or snprintf_l.
-You need to use libdouble-conversion for double/string conversion."
- },
- {
- "type": "error",
- "condition": "!tests.atomicfptr",
- "message": "detected a std::atomic implementation that fails for function pointers.
-Please apply the patch corresponding to your Standard Library vendor, found in
- qtbase/config.tests/common/atomicfptr"
- },
- {
"type": "error",
"condition": "!features.stl",
"message": "Qt requires a compliant STL library."
@@ -2747,128 +1182,12 @@ Please apply the patch corresponding to your Standard Library vendor, found in
"entries": [
"accessibility",
"alsa",
- "cups",
- {
- "type": "feature",
- "args": "directwrite",
- "condition": "config.win32"
- },
- "doubleconversion",
- "system-doubleconversion",
- "evdev",
- "fontconfig",
- "freetype",
- "system-freetype",
- "glib",
"gstreamer-0_10",
"gstreamer-1_0",
- "gtk3",
- "harfbuzz",
- "system-harfbuzz",
- "icu",
- "iconv",
- {
- "section": "Image formats",
- "entries": [
- "gif", "ico", "jpeg", "system-jpeg", "png", "system-png"
- ]
- },
- {
- "section": "Logging backends",
- "entries": [
- "journald", "syslog"
- ]
- },
- "libinput",
- "mtdev",
- {
- "section": "Networking",
- "entries": [
- {
- "type": "feature",
- "args": "corewlan",
- "condition": "config.darwin"
- },
- "getaddrinfo", "getifaddrs", "ipv6ifname", "libproxy",
- {
- "type": "feature",
- "args": "securetransport",
- "condition": "config.darwin"
- },
- "openssl",
- "openssl-linked",
- "sctp",
- "system-proxies"
- ]
- },
- {
- "section": "OpenGL",
- "entries": [
- {
- "type": "feature",
- "args": "angle",
- "condition": "config.win32"
- },
- "egl",
- "opengl-desktop",
- {
- "type": "feature",
- "args": "opengl-dynamic",
- "condition": "config.win32"
- },
- "opengles2",
- "opengles3",
- "opengles31"
- ]
- },
"pkg-config",
- "system-pcre",
"pulseaudio",
"qml-debug",
- {
- "section": "QNX specific",
- "condition": "config.qnx",
- "entries": [
- "slog2", "qqnx_imf", "qqnx_pps", "lgmon"
- ]
- },
- {
- "section": "QPA backends",
- "entries": [
- "directfb", "eglfs",
- {
- "section": "EGLFS details",
- "condition": "features.eglfs",
- "entries": [
- "eglfs_viv", "eglfs_viv_wl", "eglfs_egldevice", "eglfs_gbm", "eglfs_mali", "eglfs_brcm", "egl_x11"
- ]
- },
- "linuxfb", "mirclient",
- {
- "message": "INTEGRITY framebuffer",
- "condition": "config.integrity",
- "args": "integrityfb"
- }
- ]
- },
- "sessionmanager",
- {
- "section": "SQL drivers",
- "entries": [
- "sql-db2", "sql-ibase", "sql-mysql", "sql-oci", "sql-odbc", "sql-psql",
- "sql-sqlite2", "sql-sqlite", "system-sqlite", "sql-tds"
- ]
- },
- "tslib",
"libudev",
- {
- "section": "X11",
- "condition": "features.xcb",
- "entries": [
- "system-xcb", "egl_x11", "xinput2", "xkb", "xlib", "xrender", "xcb-render", "xcb-glx", "xcb-xlib", "xkbcommon-system"
- ]
- },
- "xkbcommon-evdev",
"system-zlib"
]
}
diff --git a/configure.pri b/configure.pri
index 03f8323f0d..d68c7dcf7b 100644
--- a/configure.pri
+++ b/configure.pri
@@ -222,16 +222,6 @@ defineTest(qtConfTest_buildParts) {
return(true)
}
-defineTest(qtConfLibrary_openssl) {
- libs = $$getenv("OPENSSL_LIBS")
- !isEmpty(libs) {
- $${1}.libs = $$libs
- export($${1}.libs)
- return(true)
- }
- return(false)
-}
-
defineTest(qtConfTest_checkCompiler) {
contains(QMAKE_CXX, ".*clang.*") {
qtRunLoggedCommand("$$QMAKE_CXX -v 2>&1", versionstr)|return(false)
@@ -274,162 +264,6 @@ defineTest(qtConfTest_checkCompiler) {
return(true)
}
-defineReplace(filterLibraryPath) {
- str = $${1}
- for (l, QMAKE_DEFAULT_LIBDIRS): \
- str -= "-L$$l"
-
- return($$str)
-}
-
-defineTest(qtConfLibrary_psqlConfig) {
- pg_config = $$config.input.psql_config
- isEmpty(pg_config): \
- pg_config = $$qtConfFindInPath("pg_config")
- !win32:!isEmpty(pg_config) {
- qtRunLoggedCommand("$$pg_config --libdir", libdir)|return(false)
- qtRunLoggedCommand("$$pg_config --includedir", includedir)|return(false)
- libdir -= $$QMAKE_DEFAULT_LIBDIRS
- libs =
- !isEmpty(libdir): libs += "-L$$libdir"
- libs += "-lpq"
- $${1}.libs = "$$val_escape(libs)"
- includedir -= $$QMAKE_DEFAULT_INCDIRS
- $${1}.includedir = "$$val_escape(includedir)"
- !isEmpty(includedir): \
- $${1}.cflags = "-I$$val_escape(includedir)"
- export($${1}.libs)
- export($${1}.includedir)
- export($${1}.cflags)
- return(true)
- }
- return(false)
-}
-
-defineTest(qtConfLibrary_psqlEnv) {
- # Respect PSQL_LIBS if set
- PSQL_LIBS = $$getenv(PSQL_LIBS)
- !isEmpty(PSQL_LIBS) {
- $${1}.libs = $$PSQL_LIBS
- export($${1}.libs)
- }
- return(true)
-}
-
-defineTest(qtConfLibrary_mysqlConfig) {
- mysql_config = $$config.input.mysql_config
- isEmpty(mysql_config): \
- mysql_config = $$qtConfFindInPath("mysql_config")
- !isEmpty(mysql_config) {
- qtRunLoggedCommand("$$mysql_config --version", version)|return(false)
- version = $$split(version, '.')
- version = $$first(version)
- isEmpty(version)|lessThan(version, 4): return(false)]
-
- # query is either --libs or --libs_r
- query = $$eval($${1}.query)
- qtRunLoggedCommand("$$mysql_config $$query", libs)|return(false)
- qtRunLoggedCommand("$$mysql_config --include", includedir)|return(false)
- eval(libs = $$libs)
- libs = $$filterLibraryPath($$libs)
- # -rdynamic should not be returned by mysql_config, but is on RHEL 6.6
- libs -= -rdynamic
- $${1}.libs = "$$val_escape(libs)"
- eval(includedir = $$includedir)
- includedir ~= s/^-I//g
- includedir -= $$QMAKE_DEFAULT_INCDIRS
- $${1}.includedir = "$$val_escape(includedir)"
- !isEmpty(includedir): \
- $${1}.cflags = "-I$$val_escape(includedir)"
- export($${1}.libs)
- export($${1}.includedir)
- export($${1}.cflags)
- return(true)
- }
- return(false)
-}
-
-defineTest(qtConfLibrary_sybaseEnv) {
- libs =
- sybase = $$getenv(SYBASE)
- !isEmpty(sybase): \
- libs += "-L$${sybase}/lib"
- libs += $$getenv(SYBASE_LIBS)
- !isEmpty(libs) {
- $${1}.libs = "$$val_escape(libs)"
- export($${1}.libs)
- }
- return(true)
-}
-
-# Check for Direct X SDK (include, lib, and direct shader compiler 'fxc').
-# Up to Direct X SDK June 2010 and for MinGW, this is pointed to by the
-# DXSDK_DIR variable. Starting with Windows Kit 8, it is included in
-# the Windows SDK. Checking for the header is not sufficient, since it
-# is also present in MinGW.
-defineTest(qtConfTest_directX) {
- dxdir = $$getenv("DXSDK_DIR")
- !isEmpty(dxdir) {
- EXTRA_INCLUDEPATH += $$dxdir/include
- arch = $$qtConfEvaluate("tests.architecture.arch")
- equals(arch, x86_64): \
- EXTRA_LIBDIR += $$dxdir/lib/x64
- else: \
- EXTRA_LIBDIR += $$dxdir/lib/x86
- EXTRA_PATH += $$dxdir/Utilities/bin/x86
- }
-
- $$qtConfEvaluate("features.sse2") {
- ky = $$size($${1}.files._KEYS_)
- $${1}.files._KEYS_ += $$ky
- # Not present on MinGW-32
- $${1}.files.$${ky} = "intrin.h"
- }
-
- qtConfTest_files($${1}): return(true)
- return(false)
-}
-
-defineTest(qtConfTest_xkbConfigRoot) {
- qtConfTest_getPkgConfigVariable($${1}): return(true)
-
- for (dir, $$list("/usr/share/X11/xkb", "/usr/local/share/X11/xkb")) {
- exists($$dir) {
- $${1}.value = $$dir
- export($${1}.value)
- $${1}.cache += value
- export($${1}.cache)
- return(true)
- }
- }
- return(false)
-}
-
-defineTest(qtConfTest_qpaDefaultPlatform) {
- name =
- !isEmpty(config.input.qpa_default_platform): name = $$config.input.qpa_default_platform
- else: !isEmpty(QT_QPA_DEFAULT_PLATFORM): name = $$QT_QPA_DEFAULT_PLATFORM
- else: winrt: name = winrt
- else: win32: name = windows
- else: android: name = android
- else: osx: name = cocoa
- else: ios: name = ios
- else: qnx: name = qnx
- else: integrity: name = integrityfb
- else: name = xcb
-
- $${1}.value = $$name
- $${1}.plugin = q$$name
- $${1}.name = "\"$$name\""
- export($${1}.value)
- export($${1}.plugin)
- export($${1}.name)
- $${1}.cache += value plugin name
- export($${1}.cache)
- return(true)
-}
-
-
# custom outputs
defineTest(qtConfOutput_shared) {
@@ -477,13 +311,6 @@ defineTest(qtConfOutput_architecture) {
export(QT_ARCH)
}
-defineTest(qtConfOutput_styles) {
- !$${2}: return()
-
- style = $$replace($${1}.feature, "style-", "")
- qtConfOutputVar(append, "privatePro", "styles", $$style)
-}
-
defineTest(qtConfOutput_qreal) {
qreal = $$config.input.qreal
isEmpty(qreal): qreal = "double"
diff --git a/examples/gui/gui.pro b/examples/gui/gui.pro
index e4fec201d7..a4d960d3f5 100644
--- a/examples/gui/gui.pro
+++ b/examples/gui/gui.pro
@@ -1,10 +1,10 @@
requires(qtHaveModule(gui))
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui
CONFIG += no_docs_target
SUBDIRS += analogclock
SUBDIRS += rasterwindow
-qtConfig(opengl(es2)?) {
+qtConfig(opengl): \
SUBDIRS += openglwindow
-}
diff --git a/examples/network/network.pro b/examples/network/network.pro
index a6a6f3ef52..759f730af3 100644
--- a/examples/network/network.pro
+++ b/examples/network/network.pro
@@ -1,6 +1,7 @@
requires(qtHaveModule(network))
TEMPLATE = subdirs
+QT_FOR_CONFIG += network-private
SUBDIRS = \
download \
downloadmanager
diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf
index 40e41900e8..af80fc00a1 100644
--- a/mkspecs/features/ctest_testcase_common.prf
+++ b/mkspecs/features/ctest_testcase_common.prf
@@ -69,6 +69,7 @@ for (dep, dependentmodules): \
mod_deps += $$cmakeModuleName($$dep)
dependentmodules = $$join(mod_deps, ";")
+QT_FOR_CONFIG += gui-private
qtConfig(angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True
!qtConfig(egl): CMAKE_GL_DEFINES += -DNO_EGL=True
diff --git a/src/3rdparty/freetype/freetype.pro b/src/3rdparty/freetype/freetype.pro
index 41ca469576..1e12dadc5d 100644
--- a/src/3rdparty/freetype/freetype.pro
+++ b/src/3rdparty/freetype/freetype.pro
@@ -68,6 +68,8 @@ DEFINES += FT2_BUILD_LIBRARY
DEFINES += FT_CONFIG_OPTION_SYSTEM_ZLIB
include(../zlib_dependency.pri)
+QT_FOR_CONFIG += gui-private
+include(../../gui/qtgui-config.pri)
DEFINES += FT_CONFIG_OPTION_USE_PNG
include($$PWD/../png_dependency.pri)
diff --git a/src/3rdparty/pcre_dependency.pri b/src/3rdparty/pcre_dependency.pri
index fa7df4df0e..f1355eabe6 100644
--- a/src/3rdparty/pcre_dependency.pri
+++ b/src/3rdparty/pcre_dependency.pri
@@ -1,7 +1,7 @@
-pcre {
+qtConfig(system-pcre) {
+ QMAKE_USE_PRIVATE += pcre
+} else {
win32: DEFINES += PCRE_STATIC
INCLUDEPATH += $$PWD/pcre
LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtpcre$$qtPlatformTargetSuffix()
-} else {
- QMAKE_USE_PRIVATE += pcre
}
diff --git a/src/angle/src/common/common.pri b/src/angle/src/common/common.pri
index c948e27dc3..e9351b2c42 100644
--- a/src/angle/src/common/common.pri
+++ b/src/angle/src/common/common.pri
@@ -1,4 +1,5 @@
# static builds should still link ANGLE dynamically when dynamic GL is enabled
+include(../../../gui/qtgui-config.pri)
static:qtConfig(dynamicgl) {
CONFIG -= static
CONFIG += shared
diff --git a/src/angle/src/compiler/preprocessor/preprocessor.pro b/src/angle/src/compiler/preprocessor/preprocessor.pro
index f9170b3bee..c13cf7ba8d 100644
--- a/src/angle/src/compiler/preprocessor/preprocessor.pro
+++ b/src/angle/src/compiler/preprocessor/preprocessor.pro
@@ -1,4 +1,5 @@
CONFIG += static
+include(../../../../gui/qtgui-config.pri)
qtConfig(dynamicgl): CONFIG += not_installed
include(../../config.pri)
diff --git a/src/angle/src/compiler/translator.pro b/src/angle/src/compiler/translator.pro
index cee13d06bb..4c0a05e45c 100644
--- a/src/angle/src/compiler/translator.pro
+++ b/src/angle/src/compiler/translator.pro
@@ -1,4 +1,5 @@
CONFIG += static
+include(../../../gui/qtgui-config.pri)
qtConfig(dynamicgl): CONFIG += not_installed
include(../config.pri)
diff --git a/src/corelib/configure.json b/src/corelib/configure.json
new file mode 100644
index 0000000000..4cccab9f5d
--- /dev/null
+++ b/src/corelib/configure.json
@@ -0,0 +1,434 @@
+{
+ "module": "core",
+ "testDir": "../../config.tests",
+
+ "commandline": {
+ "options": {
+ "doubleconversion": { "type": "enum", "values": [ "no", "qt", "system" ] },
+ "eventfd": "boolean",
+ "glib": "boolean",
+ "iconv": { "type": "enum", "values": [ "no", "yes", "posix", "sun", "gnu" ] },
+ "icu": "boolean",
+ "inotify": "boolean",
+ "journald": "boolean",
+ "pcre": { "type": "enum", "values": [ "qt", "system" ] },
+ "posix-ipc": { "type": "boolean", "name": "ipc_posix" },
+ "pps": { "type": "boolean", "name": "qqnx_pps" },
+ "slog2": "boolean",
+ "syslog": "boolean"
+ }
+ },
+
+ "libraries": {
+ "doubleconversion": {
+ "description": "DoubleConversion",
+ "test": "unix/doubleconversion",
+ "sources": [
+ "-ldouble-conversion"
+ ]
+ },
+ "glib": {
+ "description": "GLib",
+ "test": "unix/glib",
+ "sources": [
+ { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" }
+ ]
+ },
+ "gnu_iconv": {
+ "description": "GNU libiconv",
+ "export": "iconv",
+ "test": "unix/gnu-libiconv",
+ "sources": [
+ "-liconv"
+ ]
+ },
+ "icu": {
+ "description": "ICU",
+ "export": "",
+ "test": "unix/icu",
+ "sources": [
+ {
+ "builds": {
+ "debug": "-lsicuind -lsicuucd -lsicudtd",
+ "release": "-lsicuin -lsicuuc -lsicudt"
+ },
+ "condition": "config.win32 && !features.shared"
+ },
+ { "libs": "-licuin -licuuc -licudt", "condition": "config.win32 && features.shared" },
+ { "libs": "-licui18n -licuuc -licudata", "condition": "!config.win32" }
+ ]
+ },
+ "journald": {
+ "description": "journald",
+ "test": "unix/journald",
+ "export": "",
+ "sources": [
+ { "type": "pkgConfig", "args": "libsystemd" },
+ { "type": "pkgConfig", "args": "libsystemd-journal" }
+ ]
+ },
+ "libatomic": {
+ "description": "64 bit atomics in libatomic",
+ "test": "common/atomic64",
+ "sources": [
+ "-latomic"
+ ]
+ },
+ "libdl": {
+ "description": "dlopen() in libdl",
+ "export": "",
+ "test": "unix/dlopen",
+ "sources": [
+ "-ldl"
+ ]
+ },
+ "pcre": {
+ "description": "PCRE",
+ "test": "unix/pcre",
+ "sources": [
+ "-lpcre16"
+ ]
+ },
+ "pps": {
+ "description": "PPS",
+ "test": "unix/pps",
+ "sources": [
+ "-lpps"
+ ]
+ },
+ "slog2": {
+ "description": "slog2",
+ "test": "unix/slog2",
+ "export": "",
+ "sources": [
+ "-lslog2"
+ ]
+ }
+ },
+
+ "tests": {
+ "atomic64": {
+ "description": "64 bit atomics",
+ "type": "compile",
+ "test": "common/atomic64"
+ },
+ "atomicfptr": {
+ "description": "working std::atomic for function pointers",
+ "type": "compile",
+ "test": "common/atomicfptr"
+ },
+ "clock-gettime": {
+ "description": "clock_gettime()",
+ "type": "compile",
+ "test": "unix/clock-gettime"
+ },
+ "clock-monotonic": {
+ "description": "POSIX monotonic clock",
+ "type": "compile",
+ "test": "unix/clock-monotonic"
+ },
+ "cloexec": {
+ "description": "O_CLOEXEC",
+ "type": "compile",
+ "test": "unix/cloexec"
+ },
+ "dlopen": {
+ "description": "dlopen() in libc",
+ "type": "compile",
+ "test": "unix/dlopen"
+ },
+ "eventfd": {
+ "description": "eventfd",
+ "type": "compile",
+ "test": "unix/eventfd"
+ },
+ "posix-iconv": {
+ "description": "POSIX iconv",
+ "type": "compile",
+ "test": "unix/iconv"
+ },
+ "sun-iconv": {
+ "description": "SUN libiconv",
+ "type": "compile",
+ "test": "unix/sun-libiconv"
+ },
+ "inotify": {
+ "description": "inotify",
+ "type": "compile",
+ "test": "unix/inotify"
+ },
+ "ipc_sysv": {
+ "description": "SysV IPC",
+ "type": "compile",
+ "test": "unix/ipc_sysv"
+ },
+ "ipc_posix": {
+ "description": "POSIX IPC",
+ "type": "compile",
+ "test": "unix/ipc_posix"
+ },
+ "journald": {
+ "description": "journald",
+ "type": "compile",
+ "test": "unix/journald"
+ },
+ "ppoll": {
+ "description": "ppoll()",
+ "type": "compile",
+ "test": "unix/ppoll"
+ },
+ "pollts": {
+ "description": "pollts()",
+ "type": "compile",
+ "test": "unix/pollts"
+ },
+ "poll": {
+ "description": "poll()",
+ "type": "compile",
+ "test": "unix/poll"
+ },
+ "syslog": {
+ "description": "syslog",
+ "type": "compile",
+ "test": "unix/syslog"
+ },
+ "xlocalescanprint": {
+ "description": "xlocale.h (or equivalents)",
+ "type": "compile",
+ "test": "common/xlocalescanprint"
+ }
+ },
+
+ "features": {
+ "clock-gettime": {
+ "description": "clock_gettime()",
+ "condition": "tests.clock-gettime",
+ "output": [ "privateFeature" ]
+ },
+ "clock-monotonic": {
+ "description": "POSIX monotonic clock",
+ "condition": "features.clock-gettime && tests.clock-monotonic",
+ "output": [ "feature" ]
+ },
+ "dlopen": {
+ "description": "dlopen()",
+ "condition": "tests.dlopen || libs.libdl",
+ "output": [ { "type": "define", "negative": true, "name": "QT_NO_DYNAMIC_LIBRARY" } ]
+ },
+ "libdl": {
+ "description": "dlopen() in libdl",
+ "condition": "!tests.dlopen && libs.libdl",
+ "output": [ { "type": "privateConfig", "negative": true } ]
+ },
+ "doubleconversion": {
+ "description": "DoubleConversion",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "system-doubleconversion": {
+ "description": " Using system DoubleConversion",
+ "enable": "input.doubleconversion == 'system'",
+ "disable": "input.doubleconversion == 'qt'",
+ "condition": "features.doubleconversion && libs.doubleconversion",
+ "output": [ "privateFeature" ]
+ },
+ "eventfd": {
+ "description": "eventfd",
+ "condition": "tests.eventfd",
+ "output": [ "feature" ]
+ },
+ "glib": {
+ "description": "GLib",
+ "autoDetect": "!config.win32",
+ "condition": "libs.glib",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "iconv": {
+ "description": "iconv",
+ "condition": "features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "posix-libiconv": {
+ "description": "POSIX iconv",
+ "enable": "input.iconv == 'posix'",
+ "disable": "input.iconv == 'sun' || input.iconv == 'gnu' || input.iconv == 'no'",
+ "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && tests.posix-iconv"
+ },
+ "sun-libiconv": {
+ "description": "SUN iconv",
+ "enable": "input.iconv == 'sun'",
+ "disable": "input.iconv == 'posix' || input.iconv == 'gnu' || input.iconv == 'no'",
+ "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && tests.sun-iconv",
+ "output": [ "privateFeature", "publicQtConfig" ]
+ },
+ "gnu-libiconv": {
+ "description": "GNU iconv",
+ "enable": "input.iconv == 'gnu'",
+ "disable": "input.iconv == 'posix' || input.iconv == 'sun' || input.iconv == 'no'",
+ "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv",
+ "output": [ "privateFeature" ]
+ },
+ "icu": {
+ "description": "ICU",
+ "autoDetect": "!config.win32",
+ "condition": "libs.icu",
+ "output": [ "privateFeature" ]
+ },
+ "inotify": {
+ "description": "inotify",
+ "condition": "tests.inotify",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "ipc_posix": {
+ "description": "Using POSIX IPC",
+ "autoDetect": "!config.win32",
+ "condition": "!tests.ipc_sysv && tests.ipc_posix",
+ "output": [ { "type": "define", "name": "QT_POSIX_IPC" } ]
+ },
+ "journald": {
+ "description": "journald",
+ "autoDetect": false,
+ "condition": "libs.journald",
+ "output": [ "privateConfig" ]
+ },
+ "std-atomic64": {
+ "description": "64 bit atomic operations",
+ "condition": "tests.atomic64 || libs.libatomic",
+ "output": [ { "type": "define", "negative": true, "name": "QT_NO_STD_ATOMIC64" } ]
+ },
+ "libatomic": {
+ "description": "64 bit atomic operations in libatomic",
+ "condition": "!tests.atomic64 && libs.libatomic",
+ "output": [ "privateFeature" ]
+ },
+ "mimetype": {
+ "description": "Mimetype handling",
+ "output": [ "publicFeature", "feature" ]
+ },
+ "system-pcre": {
+ "description": "Using system PCRE",
+ "disable": "input.pcre == 'qt'",
+ "enable": "input.pcre == 'system'",
+ "condition": "libs.pcre",
+ "output": [
+ "privateFeature",
+ { "type": "privateConfig", "negative": true, "name": "pcre" }
+ ]
+ },
+ "poll_ppoll": {
+ "description": "Native ppoll()",
+ "emitIf": "!config.win32",
+ "condition": "tests.ppoll",
+ "output": [ "privateFeature" ]
+ },
+ "poll_pollts": {
+ "description": "Native pollts()",
+ "emitIf": "!config.win32",
+ "condition": "!features.poll_ppoll && tests.pollts",
+ "output": [ "privateFeature" ]
+ },
+ "poll_poll": {
+ "description": "Native poll()",
+ "emitIf": "!config.win32",
+ "condition": "!features.poll_ppoll && !features.poll_pollts && tests.poll",
+ "output": [ "privateFeature" ]
+ },
+ "poll_select": {
+ "description": "Emulated poll()",
+ "emitIf": "!config.win32",
+ "condition": "!features.poll_ppoll && !features.poll_pollts && !features.poll_poll",
+ "output": [
+ "privateFeature",
+ { "type": "define", "name": "QT_NO_NATIVE_POLL" }
+ ]
+ },
+ "qqnx_pps": {
+ "description": "PPS",
+ "emitIf": "config.qnx",
+ "condition": "libs.pps",
+ "output": [ "privateConfig" ]
+ },
+ "qeventtransition": {
+ "description": "QEventTransition class",
+ "output": [ "publicFeature" ]
+ },
+ "sharedmemory": {
+ "description": "Enable QSharedMemory",
+ "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix",
+ "output": [ { "type": "define", "negative": true, "name": "QT_NO_SHAREDMEMORY" } ]
+ },
+ "slog2": {
+ "description": "slog2",
+ "condition": "libs.slog2",
+ "emitIf": "config.qnx",
+ "output": [ "privateConfig" ]
+ },
+ "syslog": {
+ "description": "syslog",
+ "autoDetect": false,
+ "condition": "tests.syslog",
+ "output": [ "privateConfig" ]
+ },
+ "systemsemaphore": {
+ "description": "Enable QSystemSemaphore",
+ "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix",
+ "output": [ { "type": "define", "negative": true, "name": "QT_NO_SYSTEMSEMAPHORE" } ]
+ },
+ "threadsafe-cloexec": {
+ "description": "Threadsafe pipe creation",
+ "condition": "tests.cloexec",
+ "output": [
+ "publicQtConfig",
+ { "type": "define", "name": "QT_THREADSAFE_CLOEXEC", "value": 1 }
+ ]
+ }
+ },
+
+ "report": [
+ {
+ "type": "note",
+ "condition": "features.journald || features.syslog || (config.qnx && features.slog2)",
+ "message": "journald, syslog or slog2 integration is enabled.
+If your users intend to develop applications against this build,
+ensure that the IDEs they use either set QT_LOGGING_TO_CONSOLE to 1
+or are able to read the logged output from journald, syslog or slog2."
+ },
+ {
+ "type": "error",
+ "condition": "input.doubleconversion == 'no' && !tests.xlocalescanprint",
+ "message": "Your C library does not provide sscanf_l or snprintf_l.
+You need to use libdouble-conversion for double/string conversion."
+ },
+ {
+ "type": "error",
+ "condition": "!tests.atomicfptr",
+ "message": "detected a std::atomic implementation that fails for function pointers.
+Please apply the patch corresponding to your Standard Library vendor, found in
+ qtbase/config.tests/common/atomicfptr"
+ }
+ ],
+
+ "summary": [
+ {
+ "section": "Qt Core",
+ "entries": [
+ "doubleconversion",
+ "system-doubleconversion",
+ "glib",
+ "iconv",
+ "icu",
+ {
+ "section": "Logging backends",
+ "entries": [
+ "journald", "syslog", "slog2"
+ ]
+ },
+ {
+ "type": "feature",
+ "args": "qqnx_pps",
+ "condition": "config.qnx"
+ },
+ "system-pcre"
+ ]
+ }
+ ]
+}
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index c463a392b7..f11ec127e0 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -58,7 +58,7 @@
#ifndef QT_BOOTSTRAPPED
#include <QtCore/qconfig.h>
-#include <QtCore/qfeatures.h>
+#include <QtCore/qtcore-config.h>
#endif
// The QT_SUPPORTS macro is deprecated. Don't use it in new code.
diff --git a/src/corelib/global/qglobal_p.h b/src/corelib/global/qglobal_p.h
index e75d87b384..c329357f46 100644
--- a/src/corelib/global/qglobal_p.h
+++ b/src/corelib/global/qglobal_p.h
@@ -50,6 +50,7 @@
#ifndef QT_BOOTSTRAPPED
#include <QtCore/private/qconfig_p.h>
+#include <QtCore/private/qtcore-config_p.h>
#endif
#define QT_LIBRARY_VERSION(lib) QT_LIBRARY_VERSION_##lib
diff --git a/src/gui/configure.json b/src/gui/configure.json
new file mode 100644
index 0000000000..c662c0a524
--- /dev/null
+++ b/src/gui/configure.json
@@ -0,0 +1,905 @@
+{
+ "module": "gui",
+ "depends": [
+ "core"
+ ],
+ "testDir": "../../config.tests",
+
+ "commandline": {
+ "options": {
+ "angle": "boolean",
+ "directfb": "boolean",
+ "directwrite": "boolean",
+ "egl": "boolean",
+ "eglfs": "boolean",
+ "evdev": "boolean",
+ "fontconfig": "boolean",
+ "freetype": { "type": "enum", "values": [ "no", "qt", "system" ] },
+ "gbm": "boolean",
+ "gif": "boolean",
+ "harfbuzz": { "type": "enum", "values": [ "no", "qt", "system" ] },
+ "ico": "boolean",
+ "imf": { "type": "boolean", "name": "qqnx_imf" },
+ "kms": "boolean",
+ "lgmon": "boolean",
+ "libinput": "boolean",
+ "libjpeg": { "type": "enum", "values": [ "no", "qt", "system" ] },
+ "libpng": { "type": "enum", "values": [ "no", "qt", "system" ] },
+ "linuxfb": "boolean",
+ "mirclient": "boolean",
+ "mtdev": "boolean",
+ "opengl": { "type": "optionalString", "values": [ "no", "yes", "desktop", "es2", "dynamic" ] },
+ "opengl-es-2": { "type": "void", "name": "opengl", "value": "es2" },
+ "opengles3": "boolean",
+ "qpa": { "type": "string", "name": "qpa_default_platform" },
+ "qpa-platform-guard": "boolean",
+ "sm": { "type": "boolean", "name": "sessionmanager" },
+ "tslib": "boolean",
+ "xcb": { "type": "enum", "values": [ "no", "yes", "qt", "system" ] },
+ "xcb-xlib": "boolean",
+ "xinput2": "boolean",
+ "xkb": "boolean",
+ "xkb-config-root": "string",
+ "xkbcommon": { "type": "enum", "values": [ "no", "qt", "system" ] },
+ "xkbcommon-evdev": "boolean",
+ "xkbcommon-x11": { "type": "enum", "name": "xkbcommon", "values": [ "no", "qt", "system" ] },
+ "xrender": "boolean"
+ }
+ },
+
+ "libraries": {
+ "bcm_host": {
+ "export": "",
+ "sources": [
+ "-lbcm_host"
+ ]
+ },
+ "directfb": {
+ "description": "DirectFB",
+ "test": "qpa/directfb",
+ "sources": [
+ { "type": "pkgConfig", "args": "directfb" }
+ ]
+ },
+ "directwrite": {
+ "description": "DirectWrite",
+ "export": "",
+ "test": "win/directwrite",
+ "sources": [
+ "-ldwrite"
+ ]
+ },
+ "drm": {
+ "description": "KMS",
+ "test": "qpa/kms",
+ "sources": [
+ { "type": "pkgConfig", "args": "libdrm" },
+ "-ldrm"
+ ]
+ },
+ "egl": {
+ "description": "EGL",
+ "test": "qpa/egl",
+ "sources": [
+ { "type": "pkgConfig", "args": "egl" },
+ { "type": "makeSpec", "spec": "EGL" }
+ ]
+ },
+ "freetype": {
+ "description": "FreeType",
+ "export": "",
+ "test": "unix/freetype",
+ "sources": [
+ "-lfreetype"
+ ]
+ },
+ "fontconfig": {
+ "description": "Fontconfig",
+ "test": "unix/fontconfig",
+ "sources": [
+ { "type": "pkgConfig", "args": "fontconfig freetype2" },
+ "-lfontconfig -lfreetype"
+ ]
+ },
+ "gbm": {
+ "description": "GBM",
+ "test": "qpa/gbm",
+ "sources": [
+ { "type": "pkgConfig", "args": "gbm" }
+ ]
+ },
+ "harfbuzz": {
+ "description": "HarfBuzz",
+ "test": "unix/harfbuzz",
+ "sources": [
+ "-lharfbuzz"
+ ]
+ },
+ "imf": {
+ "description": "IMF",
+ "export": "",
+ "test": "unix/qqnx_imf",
+ "sources": [
+ "-linput_client"
+ ]
+ },
+ "lgmon": {
+ "description": "lgmon",
+ "test": "unix/lgmon",
+ "sources": [
+ "-llgmon"
+ ]
+ },
+ "libinput": {
+ "description": "libinput",
+ "test": "unix/libinput",
+ "sources": [
+ { "type": "pkgConfig", "args": "libinput" }
+ ]
+ },
+ "libjpeg": {
+ "description": "libjpeg",
+ "test": "unix/libjpeg",
+ "sources": [
+ { "libs": "-llibjpeg", "condition": "config.msvc" },
+ { "libs": "-ljpeg", "condition": "!config.msvc" }
+ ]
+ },
+ "libpng": {
+ "description": "libpng",
+ "test": "unix/libpng",
+ "sources": [
+ { "type": "pkgConfig", "args": "libpng" },
+ { "libs": "-llibpng", "condition": "config.msvc" },
+ { "libs": "-lpng", "condition": "!config.msvc" }
+ ]
+ },
+ "mirclient": {
+ "description": "Mir client libraries",
+ "export": "",
+ "test": "qpa/mirclient",
+ "sources": [
+ { "type": "pkgConfig", "args": "egl mirclient ubuntu-platform-api" }
+ ]
+ },
+ "mtdev": {
+ "description": "mtdev",
+ "export": "",
+ "test": "unix/mtdev",
+ "sources": [
+ { "type": "pkgConfig", "args": "mtdev" }
+ ]
+ },
+ "opengl": {
+ "description": "Desktop OpenGL",
+ "test": "unix/opengldesktop",
+ "sources": [
+ { "type": "pkgConfig", "args": "gl" },
+ { "type": "makeSpec", "spec": "OPENGL" }
+ ]
+ },
+ "opengl_es2": {
+ "description": "OpenGL ES 2.0",
+ "test": "unix/opengles2",
+ "sources": [
+ { "type": "pkgConfig", "args": "glesv2" },
+ { "type": "makeSpec", "spec": "OPENGL_ES2" }
+ ]
+ },
+ "tslib": {
+ "description": "tslib",
+ "test": "unix/tslib",
+ "sources": [
+ "-lts"
+ ]
+ },
+ "wayland_server": {
+ "description": "Wayland Server",
+ "export": "",
+ "test": "qpa/wayland-server",
+ "sources": [
+ { "type": "pkgConfig", "args": "wayland-server" }
+ ]
+ },
+ "x11sm": {
+ "description": "X11 session management",
+ "sources": [
+ { "type": "pkgConfig", "args": "sm ice" }
+ ]
+ },
+ "xcb": {
+ "description": "XCB >= 1.5 (core)",
+ "test": "qpa/xcb",
+ "sources": [
+ { "type": "pkgConfig", "args": "xcb >= 1.5" },
+ "-lxcb"
+ ]
+ },
+ "xcb_syslibs": {
+ "description": "XCB (secondary)",
+ "test": "qpa/xcb-syslibs",
+ "sources": [
+ { "type": "pkgConfig",
+ "args": "xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape" },
+ "-lxcb -lxcb-shm -lxcb-sync -lxcb-xfixes -lxcb-randr -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-shape"
+ ]
+ },
+ "xcb_xlib": {
+ "description": "XCB Xlib",
+ "test": "qpa/xcb-xlib",
+ "sources": [
+ { "type": "pkgConfig", "args": "X11-xcb x11 xcb" },
+ "-lxcb -lX11 -lX11-xcb"
+ ]
+ },
+ "xcb_xkb": {
+ "description": "XCB XKB >= 1.10",
+ "test": "qpa/xcb-xkb",
+ "sources": [
+ { "type": "pkgConfig", "args": "xcb-xkb >= 1.10 xcb" },
+ "-lxcb-xkb -lxcb"
+ ]
+ },
+ "xcb_render": {
+ "description": "XCB XRender",
+ "test": "qpa/xcb-render",
+ "sources": [
+ { "type": "pkgConfig", "args": "xcb-renderutil xcb-render xcb" },
+ "-lxcb-render-util -lxcb-render -lxcb"
+ ]
+ },
+ "xcb_glx": {
+ "description": "XCB GLX",
+ "test": "qpa/xcb-glx",
+ "sources": [
+ { "type": "pkgConfig", "args": "xcb-glx xcb" },
+ "-lxcb-glx -lxcb"
+ ]
+ },
+ "xinput2": {
+ "description": "Xinput2",
+ "test": "x11/xinput2",
+ "sources": [
+ { "type": "pkgConfig", "args": "xi" },
+ "-lXi"
+ ]
+ },
+ "xkbcommon": {
+ "description": "xkbcommon",
+ "export": "xkbcommon_evdev",
+ "test": "unix/xkbcommon",
+ "sources": [
+ { "type": "pkgConfig", "args": "xkbcommon" }
+ ]
+ },
+ "xkbcommon_x11": {
+ "description": "xkbcommon-x11 >= 0.4.1",
+ "export": "xkbcommon",
+ "sources": [
+ { "type": "pkgConfig", "args": "xkbcommon xkbcommon-x11 >= 0.4.1" }
+ ]
+ },
+ "xrender": {
+ "description": "XRender",
+ "test": "x11/xrender",
+ "sources": [
+ "-lXrender"
+ ]
+ }
+ },
+
+ "testTypeAliases": {
+ "files": [ "directX" ],
+ "getPkgConfigVariable": [ "xkbConfigRoot" ]
+ },
+
+ "tests": {
+ "direct2d": {
+ "description": "Direct 2D",
+ "type": "compile",
+ "test": "qpa/direct2d",
+ "use": "direct2d"
+ },
+ "directwrite2": {
+ "description": "DirectWrite 2",
+ "type": "compile",
+ "test": "win/directwrite2",
+ "use": "directwrite"
+ },
+ "directx": {
+ "description": "DirectX SDK",
+ "type": "directX",
+ "files": [
+ "d3dcompiler.h",
+ "d3d11.lib",
+ "fxc.exe"
+ ]
+ },
+ "egl-x11": {
+ "description": "EGL on X11",
+ "type": "compile",
+ "test": "qpa/egl-x11",
+ "use": "egl xcb_xlib"
+ },
+ "egl-brcm": {
+ "description": "Broadcom EGL (Rasberry Pi)",
+ "type": "compile",
+ "test": "qpa/eglfs-brcm",
+ "use": "egl bcm_host"
+ },
+ "egl-egldevice": {
+ "description": "EGLDevice",
+ "type": "compile",
+ "test": "qpa/eglfs-egldevice",
+ "use": "egl"
+ },
+ "egl-mali": {
+ "description": "Mali EGL",
+ "type": "compile",
+ "test": "qpa/eglfs-mali",
+ "use": "egl"
+ },
+ "egl-mali-2": {
+ "description": "Mali 2 EGL",
+ "type": "compile",
+ "test": "qpa/eglfs-mali-2",
+ "use": "egl"
+ },
+ "egl-viv": {
+ "description": "i.Mx6 EGL",
+ "type": "compile",
+ "test": "qpa/eglfs-viv",
+ "use": "egl"
+ },
+ "evdev": {
+ "description": "evdev",
+ "type": "compile",
+ "test": "unix/evdev"
+ },
+ "linuxfb": {
+ "description": "LinuxFB",
+ "type": "compile",
+ "test": "qpa/linuxfb"
+ },
+ "opengles3": {
+ "description": "OpenGL ES 3.0",
+ "type": "compile",
+ "test": "unix/opengles3",
+ "use": "opengl_es2"
+ },
+ "opengles31": {
+ "description": "OpenGL ES 3.1",
+ "type": "compile",
+ "test": "unix/opengles31",
+ "use": "opengl_es2"
+ },
+ "qpa_default_platform": {
+ "description": "default QPA platform",
+ "type": "qpaDefaultPlatform",
+ "log": "value"
+ },
+ "x11prefix": {
+ "description": "X11 prefix",
+ "type": "getPkgConfigVariable",
+ "pkg-config-args": "x11",
+ "pkg-config-variable": "prefix",
+ "value": "/usr",
+ "log": "value"
+ },
+ "xkbconfigroot": {
+ "description": "XKB config root",
+ "type": "xkbConfigRoot",
+ "pkg-config-args": "xkeyboard-config",
+ "pkg-config-variable": "xkb_base",
+ "log": "value"
+ },
+ "xlib": {
+ "description": "XLib",
+ "type": "compile",
+ "test": "x11/xlib"
+ }
+ },
+
+ "features": {
+ "accessibility-atspi-bridge": {
+ "description": "ATSPI Bridge",
+ "condition": "features.accessibility && features.xcb && features.dbus",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "angle": {
+ "description": "ANGLE",
+ "autoDetect": "features.opengles2 || features.opengl-dynamic",
+ "condition": "config.win32 && tests.directx",
+ "output": [
+ "publicFeature",
+ { "type": "define", "name": "QT_OPENGL_ES_2_ANGLE" }
+ ]
+ },
+ "directfb": {
+ "description": "DirectFB",
+ "autoDetect": false,
+ "condition": "libs.directfb",
+ "output": [ "privateFeature" ]
+ },
+ "directwrite": {
+ "description": "DirectWrite",
+ "emitIf": "config.win32",
+ "condition": "libs.directwrite",
+ "output": [ "privateFeature" ]
+ },
+ "directwrite2": {
+ "description": "DirectWrite 2",
+ "emitIf": "config.win32",
+ "condition": "features.directwrite && tests.directwrite2",
+ "output": [ "privateFeature" ]
+ },
+ "direct2d": {
+ "description": "Direct 2D",
+ "autoDetect": false,
+ "condition": "tests.direct2d",
+ "output": [ "privateFeature" ]
+ },
+ "evdev": {
+ "description": "evdev",
+ "condition": "tests.evdev",
+ "output": [ "privateFeature" ]
+ },
+ "freetype": {
+ "description": "FreeType",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "system-freetype": {
+ "description": " Using system FreeType",
+ "enable": "input.freetype == 'system'",
+ "disable": "input.freetype == 'qt'",
+ "autoDetect": "!config.win32",
+ "condition": "features.freetype && libs.freetype",
+ "output": [ "privateFeature" ]
+ },
+ "fontconfig": {
+ "description": "Fontconfig",
+ "condition": "!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "gbm": {
+ "description": "GBM",
+ "condition": "libs.gbm",
+ "output": [ "publicQtConfig" ]
+ },
+ "harfbuzz": {
+ "description": "HarfBuzz",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "system-harfbuzz": {
+ "description": " Using system HarfBuzz",
+ "enable": "input.harfbuzz == 'system'",
+ "disable": "input.harfbuzz == 'qt'",
+ "autoDetect": "!config.darwin && !config.win32",
+ "condition": "features.harfbuzz && libs.harfbuzz",
+ "output": [ "privateFeature" ]
+ },
+ "qqnx_imf": {
+ "description": "IMF",
+ "emitIf": "config.qnx",
+ "condition": "libs.imf",
+ "output": [ "privateConfig" ]
+ },
+ "integrityfb": {
+ "description": "INTEGRITY framebuffer",
+ "condition": "config.integrity",
+ "output": [ "privateFeature" ]
+ },
+ "kms": {
+ "description": "KMS",
+ "condition": "libs.drm",
+ "output": [ "publicQtConfig" ]
+ },
+ "libinput": {
+ "description": "libinput",
+ "condition": "features.libudev && libs.libinput",
+ "output": [ "privateFeature" ]
+ },
+ "lgmon": {
+ "description": "lgmon",
+ "emitIf": "config.qnx",
+ "condition": "libs.lgmon",
+ "output": [ "privateConfig" ]
+ },
+ "linuxfb": {
+ "description": "LinuxFB",
+ "condition": "tests.linuxfb",
+ "output": [ "privateFeature" ]
+ },
+ "mirclient": {
+ "description": "Mir client",
+ "condition": "libs.mirclient",
+ "output": [ "privateFeature" ]
+ },
+ "mtdev": {
+ "description": "mtdev",
+ "condition": "libs.mtdev",
+ "output": [ "privateFeature" ]
+ },
+ "opengles2": {
+ "description": "OpenGL ES 2.0",
+ "enable": "input.opengl == 'es2'",
+ "disable": "input.opengl == 'desktop' || input.opengl == 'dynamic' || input.opengl == 'no'",
+ "condition": "config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)",
+ "output": [
+ "publicFeature",
+ "publicQtConfig",
+ { "type": "define", "name": "QT_OPENGL_ES" },
+ { "type": "define", "name": "QT_OPENGL_ES_2" }
+ ]
+ },
+ "opengles3": {
+ "description": "OpenGL ES 3.0",
+ "condition": "features.opengles2 && !features.angle && tests.opengles3",
+ "output": [
+ "publicFeature",
+ { "type": "define", "name": "QT_OPENGL_ES_3" }
+ ]
+ },
+ "opengles31": {
+ "description": "OpenGL ES 3.1",
+ "condition": "features.opengles3 && tests.opengles31",
+ "output": [
+ "publicFeature",
+ { "type": "define", "name": "QT_OPENGL_ES_3_1" }
+ ]
+ },
+ "opengl-desktop": {
+ "description": "Desktop OpenGL",
+ "enable": "input.opengl == 'desktop'",
+ "disable": "input.opengl == 'es2' || input.opengl == 'dynamic' || input.opengl == 'no'",
+ "condition": "(config.win32 && !config.winrt && !features.opengles2 && (config.msvc || libs.opengl))
+ || (!config.watchos && !config.win32 && libs.opengl)"
+ },
+ "opengl-dynamic": {
+ "description": "Dynamic OpenGL",
+ "enable": "input.opengl == 'dynamic'",
+ "autoDetect": false,
+ "condition": "config.win32 && !config.winrt",
+ "output": [
+ { "type": "publicFeature", "name": "dynamicgl" },
+ { "type": "define", "name": "QT_OPENGL_DYNAMIC" }
+ ]
+ },
+ "opengl": {
+ "description": "OpenGL",
+ "condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2",
+ "output": [ "publicFeature", "feature" ]
+ },
+ "egl": {
+ "description": "EGL",
+ "condition": "features.opengl && (features.angle || libs.egl)",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "egl_x11": {
+ "description": "EGL on X11",
+ "condition": "features.egl && tests.egl-x11",
+ "output": [ "privateFeature" ]
+ },
+ "eglfs": {
+ "description": "EGLFS",
+ "autoDetect": "!config.android && !config.win32",
+ "condition": "features.egl",
+ "output": [ "privateFeature" ]
+ },
+ "eglfs_brcm": {
+ "description": "EGLFS Rasberry Pi",
+ "condition": "features.eglfs && tests.egl-brcm",
+ "output": [ "privateFeature" ]
+ },
+ "eglfs_egldevice": {
+ "description": "EGLFS EGLDevice",
+ "condition": "features.eglfs && tests.egl-egldevice && features.kms",
+ "output": [ "privateFeature" ]
+ },
+ "eglfs_gbm": {
+ "description": "EGLFS GBM",
+ "condition": "features.eglfs && features.gbm && features.kms",
+ "output": [ "privateFeature" ]
+ },
+ "eglfs_mali": {
+ "description": "EGLFS Mali",
+ "condition": "features.eglfs && (tests.egl-mali || tests.egl-mali-2)",
+ "output": [ "privateFeature" ]
+ },
+ "eglfs_viv": {
+ "description": "EGLFS i.Mx6",
+ "condition": "features.eglfs && tests.egl-viv",
+ "output": [ "privateFeature" ]
+ },
+ "eglfs_viv_wl": {
+ "description": "EGLFS i.Mx6 Wayland",
+ "condition": "features.eglfs_viv && libs.wayland_server",
+ "output": [ "privateFeature" ]
+ },
+ "gif": {
+ "description": "GIF",
+ "output": [
+ "privateFeature",
+ { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_GIF" }
+ ]
+ },
+ "ico": {
+ "description": "ICO",
+ "output": [ "privateFeature", "feature" ]
+ },
+ "jpeg": {
+ "description": "JPEG",
+ "disable": "input.libjpeg == 'no'",
+ "output": [
+ "privateFeature",
+ { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_JPEG" }
+ ]
+ },
+ "system-jpeg": {
+ "description": " Using system libjpeg",
+ "disable": "input.libjpeg == 'qt'",
+ "enable": "input.libjpeg == 'system'",
+ "condition": "features.jpeg && libs.libjpeg",
+ "output": [ "privateFeature" ]
+ },
+ "png": {
+ "description": "PNG",
+ "disable": "input.libpng == 'no'",
+ "output": [
+ "privateFeature",
+ { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_PNG" }
+ ]
+ },
+ "system-png": {
+ "description": " Using system libpng",
+ "disable": "input.libpng == 'qt'",
+ "enable": "input.libpng == 'system'",
+ "condition": "features.png && libs.libpng",
+ "output": [ "privateFeature" ]
+ },
+ "qpa_default_platform": {
+ "description": "QPA default platform",
+ "condition": "features.gui",
+ "output": [
+ { "type": "define", "name": "QT_QPA_DEFAULT_PLATFORM_NAME", "value": "tests.qpa_default_platform.name" },
+ { "type": "varAssign", "public": true, "name": "QT_DEFAULT_QPA_PLUGIN", "value": "tests.qpa_default_platform.plugin",
+ "condition": "!features.shared" }
+ ]
+ },
+ "sessionmanager": {
+ "description": "Session Management",
+ "output": [ "feature" ]
+ },
+ "tslib": {
+ "description": "tslib",
+ "condition": "libs.tslib",
+ "output": [ "privateFeature" ]
+ },
+ "xcb": {
+ "description": "XCB",
+ "autoDetect": "!config.darwin",
+ "condition": "libs.xcb",
+ "output": [ "privateFeature" ]
+ },
+ "system-xcb": {
+ "description": "Using system provided XCB libraries",
+ "enable": "input.xcb == 'system' || input.xcb == 'yes'",
+ "disable": "input.xcb == 'qt' || input.xcb == 'no'",
+ "autoDetect": "!config.darwin",
+ "condition": "libs.xcb && libs.xcb_syslibs",
+ "output": [ "privateFeature" ]
+ },
+ "x11-prefix": {
+ "description": "X11 prefix",
+ "emitIf": "features.xcb",
+ "output": [ { "type": "varAssign", "name": "QMAKE_X11_PREFIX", "value": "tests.x11prefix.value" } ]
+ },
+ "xcb-glx": {
+ "description": "XCB GLX",
+ "emitIf": "features.xcb",
+ "condition": "libs.xcb_glx",
+ "output": [ "privateFeature" ]
+ },
+ "xcb-render": {
+ "description": "XCB render",
+ "emitIf": "features.system-xcb",
+ "condition": "libs.xcb_render",
+ "output": [ "privateFeature" ]
+ },
+ "xcb-xlib": {
+ "description": "XCB Xlib",
+ "emitIf": "features.xcb",
+ "condition": "libs.xcb_xlib",
+ "output": [ "privateFeature" ]
+ },
+ "xcb-sm": {
+ "description": "xcb-sm",
+ "emitIf": "features.xcb",
+ "condition": "features.sessionmanager && libs.x11sm",
+ "output": [ "privateFeature" ]
+ },
+ "xinput2": {
+ "description": "Xinput2",
+ "condition": "libs.xinput2",
+ "output": [ "privateFeature" ]
+ },
+ "xkbcommon-evdev": {
+ "description": "xkbcommon-evdev",
+ "condition": "libs.xkbcommon",
+ "output": [ "privateFeature" ]
+ },
+ "xkbcommon-system": {
+ "description": "Using system-provided xkbcommon",
+ "emitIf": "features.xcb",
+ "enable": "input.xkbcommon == 'system'",
+ "disable": "input.xkbcommon == 'qt' || input.xkbcommon == 'no'",
+ "condition": "libs.xkbcommon_x11",
+ "output": [ "privateFeature" ]
+ },
+ "xkb": {
+ "description": "XCB XKB",
+ "condition": "features.system-xcb && libs.xcb_xkb",
+ "output": [ "privateFeature" ]
+ },
+ "xkb-config-root": {
+ "description": "XKB config root",
+ "emitIf": "features.xcb",
+ "condition": "features.xcb && !features.xkbcommon-system && tests.xkbconfigroot",
+ "output": [ { "type": "varAssign", "name": "QMAKE_XKB_CONFIG_ROOT", "value": "tests.xkbconfigroot.value"} ]
+ },
+ "xlib": {
+ "description": "XLib",
+ "condition": "tests.xlib",
+ "output": [ "privateFeature" ]
+ },
+ "xrender": {
+ "description": "Xrender",
+ "condition": "libs.xrender",
+ "output": [ "privateFeature", "feature" ]
+ }
+ },
+
+ "earlyReport": [
+ {
+ "type": "error",
+ "condition": "input.xcb != '' && input.xcb != 'no' && input.xkbcommon == 'no'",
+ "message": "XCB plugin requires libxkbcommon. See -qt-xkbcommon-x11 and -system-xkbcommon-x11."
+ }
+ ],
+
+ "report": [
+ {
+ "type": "warning",
+ "condition": "features.xcb && !features.xkbcommon-system && !features.xkb-config-root",
+ "message": "Could not find XKB config root, use -xkb-config-root to set a path to
+XKB configuration data. This is required for keyboard input support."
+ },
+ {
+ "type": "note",
+ "condition": "features.accessibility && features.xcb && !features.accessibility-atspi-bridge",
+ "message": "Disabling Linux Accessibility Bridge: D-Bus is missing."
+ },
+ {
+ "type": "warning",
+ "condition": "input.qpa-platform-guard != ''",
+ "message": "The [-no]-qpa-platform-guard argument is deprecated and has no effect."
+ },
+ {
+ "type": "warning",
+ "condition": "features.gui && config.linux && !features.xcb && !features.eglfs && !features.directfb && !features.linuxfb && !features.mirclient",
+ "message": "No QPA platform plugin enabled! This will
+produce a Qt that cannot run GUI applications.
+The dependencies needed for xcb to build are listed in
+src/plugins/platforms/xcb/README"
+ },
+ {
+ "type": "warning",
+ "condition": "config.win32 && (features.opengles2 || features.opengl-dynamic) && !features.angle",
+ "message": "Using OpenGL ES 2.0 on Windows without ANGLE.
+The build will most likely fail.
+Specify -opengl desktop to use regular OpenGL."
+ },
+ {
+ "type": "warning",
+ "condition": "config.darwin && features.system-harfbuzz",
+ "message": "On OS X, AAT is supported only with -qt-harfbuzz."
+ },
+ {
+ "type": "error",
+ "condition": "features.gui && !config.watchos && input.opengl != 'no' && !features.opengl-desktop && !features.opengles2 && !features.opengl-dynamic",
+ "message": "The OpenGL functionality tests failed!
+You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
+QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform."
+ }
+ ],
+
+ "summary": [
+ {
+ "section": "Qt Gui",
+ "entries": [
+ "freetype",
+ "system-freetype",
+ "harfbuzz",
+ "system-harfbuzz",
+ "fontconfig",
+ {
+ "section": "Image formats",
+ "entries": [
+ "gif", "ico", "jpeg", "system-jpeg", "png", "system-png"
+ ]
+ },
+ {
+ "section": "OpenGL",
+ "entries": [
+ {
+ "type": "feature",
+ "args": "angle",
+ "condition": "config.win32"
+ },
+ "egl",
+ "opengl-desktop",
+ {
+ "type": "feature",
+ "args": "opengl-dynamic",
+ "condition": "config.win32"
+ },
+ "opengles2",
+ "opengles3",
+ "opengles31"
+ ]
+ },
+ "sessionmanager"
+ ]
+ },
+ {
+ "section": "Features used by QPA backends",
+ "entries": [
+ "evdev",
+ "libinput",
+ "mtdev",
+ "tslib",
+ "xkbcommon-evdev"
+ ]
+ },
+ {
+ "section": "QPA backends",
+ "entries": [
+ "directfb", "eglfs",
+ {
+ "section": "EGLFS details",
+ "condition": "features.eglfs",
+ "entries": [
+ "eglfs_viv", "eglfs_viv_wl", "eglfs_egldevice", "eglfs_gbm", "eglfs_mali", "eglfs_brcm", "egl_x11"
+ ]
+ },
+ "linuxfb", "mirclient",
+ {
+ "message": "INTEGRITY framebuffer",
+ "condition": "config.integrity",
+ "args": "integrityfb"
+ },
+ {
+ "section": "QNX",
+ "condition": "config.qnx",
+ "entries": [
+ "lgmon", "qqnx_imf"
+ ]
+ },
+ {
+ "section": "X11",
+ "condition": "features.xcb",
+ "entries": [
+ "system-xcb", "egl_x11", "xinput2", "xkb", "xlib", "xrender", "xcb-render", "xcb-glx", "xcb-xlib", "xkbcommon-system"
+ ]
+ },
+ {
+ "section": "Windows",
+ "condition": "config.win32",
+ "entries": [
+ "direct2d", "directwrite", "directwrite2"
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/gui/configure.pri b/src/gui/configure.pri
new file mode 100644
index 0000000000..d79c5a6bba
--- /dev/null
+++ b/src/gui/configure.pri
@@ -0,0 +1,67 @@
+# custom tests
+
+# Check for Direct X SDK (include, lib, and direct shader compiler 'fxc').
+# Up to Direct X SDK June 2010 and for MinGW, this is pointed to by the
+# DXSDK_DIR variable. Starting with Windows Kit 8, it is included in
+# the Windows SDK. Checking for the header is not sufficient, since it
+# is also present in MinGW.
+defineTest(qtConfTest_directX) {
+ dxdir = $$getenv("DXSDK_DIR")
+ !isEmpty(dxdir) {
+ EXTRA_INCLUDEPATH += $$dxdir/include
+ equals(QT_ARCH, x86_64): \
+ EXTRA_LIBDIR += $$dxdir/lib/x64
+ else: \
+ EXTRA_LIBDIR += $$dxdir/lib/x86
+ EXTRA_PATH += $$dxdir/Utilities/bin/x86
+ }
+
+ $$qtConfEvaluate("features.sse2") {
+ ky = $$size($${1}.files._KEYS_)
+ $${1}.files._KEYS_ += $$ky
+ # Not present on MinGW-32
+ $${1}.files.$${ky} = "intrin.h"
+ }
+
+ qtConfTest_files($${1}): return(true)
+ return(false)
+}
+
+defineTest(qtConfTest_xkbConfigRoot) {
+ qtConfTest_getPkgConfigVariable($${1}): return(true)
+
+ for (dir, $$list("/usr/share/X11/xkb", "/usr/local/share/X11/xkb")) {
+ exists($$dir) {
+ $${1}.value = $$dir
+ export($${1}.value)
+ $${1}.cache += value
+ export($${1}.cache)
+ return(true)
+ }
+ }
+ return(false)
+}
+
+defineTest(qtConfTest_qpaDefaultPlatform) {
+ name =
+ !isEmpty(config.input.qpa_default_platform): name = $$config.input.qpa_default_platform
+ else: !isEmpty(QT_QPA_DEFAULT_PLATFORM): name = $$QT_QPA_DEFAULT_PLATFORM
+ else: winrt: name = winrt
+ else: win32: name = windows
+ else: android: name = android
+ else: macos: name = cocoa
+ else: ios: name = ios
+ else: qnx: name = qnx
+ else: integrity: name = integrityfb
+ else: name = xcb
+
+ $${1}.value = $$name
+ $${1}.plugin = q$$name
+ $${1}.name = "\"$$name\""
+ export($${1}.value)
+ export($${1}.plugin)
+ export($${1}.name)
+ $${1}.cache += value plugin name
+ export($${1}.cache)
+ return(true)
+}
diff --git a/src/gui/kernel/qtguiglobal.h b/src/gui/kernel/qtguiglobal.h
index f0e64fbc53..8a7409e3d9 100644
--- a/src/gui/kernel/qtguiglobal.h
+++ b/src/gui/kernel/qtguiglobal.h
@@ -41,6 +41,7 @@
#define QTGUIGLOBAL_H
#include <QtCore/qglobal.h>
+#include <QtGui/qtgui-config.h>
QT_BEGIN_NAMESPACE
diff --git a/src/gui/kernel/qtguiglobal_p.h b/src/gui/kernel/qtguiglobal_p.h
index fd04b8ff95..d2c0b3c5d1 100644
--- a/src/gui/kernel/qtguiglobal_p.h
+++ b/src/gui/kernel/qtguiglobal_p.h
@@ -53,5 +53,6 @@
#include <QtGui/qtguiglobal.h>
#include <QtCore/private/qglobal_p.h>
+#include <QtGui/private/qtgui-config_p.h>
#endif // QTGUIGLOBAL_P_H
diff --git a/src/network/configure.json b/src/network/configure.json
new file mode 100644
index 0000000000..a647439b19
--- /dev/null
+++ b/src/network/configure.json
@@ -0,0 +1,216 @@
+{
+ "module": "network",
+ "depends": [
+ "core"
+ ],
+ "testDir": "../../config.tests",
+
+ "commandline": {
+ "assignments": {
+ "OPENSSL_LIBS": "openssl.libs",
+ "OPENSSL_LIBS_DEBUG": "openssl.libs.debug",
+ "OPENSSL_LIBS_RELEASE": "openssl.libs.release",
+ "OPENSSL_PATH": "openssl.prefix"
+ },
+ "options": {
+ "libproxy": "boolean",
+ "openssl": { "type": "optionalString", "values": [ "no", "yes", "linked", "runtime" ] },
+ "openssl-linked": { "type": "void", "name": "openssl", "value": "linked" },
+ "openssl-runtime": { "type": "void", "name": "openssl", "value": "runtime" },
+ "sctp": "boolean",
+ "securetransport": "boolean",
+ "ssl": "boolean",
+ "system-proxies": "boolean"
+ }
+ },
+
+ "libraries": {
+ "corewlan": {
+ "description": "CoreWLan",
+ "export": "",
+ "test": "mac/corewlan",
+ "sources": [
+ "-framework CoreWLAN -framework Foundation"
+ ]
+ },
+ "network": {
+ "export": "",
+ "sources": [
+ { "type": "makeSpec", "spec": "NETWORK" }
+ ]
+ },
+ "libproxy": {
+ "description": "libproxy",
+ "test": "common/libproxy",
+ "sources": [
+ "-lproxy"
+ ]
+ },
+ "openssl": {
+ "description": "OpenSSL Libraries",
+ "export": "",
+ "sources": [
+ { "type": "openssl" },
+ {
+ "comment": "placeholder for OPENSSL_LIBS{,_{DEBUG,RELEASE}}",
+ "libs": "",
+ "builds": {
+ "debug": "",
+ "release": ""
+ },
+ "condition": "config.win32 && !features.shared"
+ },
+ { "libs": "-lssleay32 -llibeay32", "condition": "config.win32 && features.shared" },
+ { "libs": "-lssl -lcrypto", "condition": "!config.win32" }
+ ]
+ }
+ },
+
+ "tests": {
+ "getaddrinfo": {
+ "description": "getaddrinfo()",
+ "type": "compile",
+ "test": "unix/getaddrinfo",
+ "use": "network"
+ },
+ "getifaddrs": {
+ "description": "getifaddrs()",
+ "type": "compile",
+ "test": "unix/getifaddrs",
+ "use": "network"
+ },
+ "ipv6ifname": {
+ "description": "IPv6 ifname",
+ "type": "compile",
+ "test": "unix/ipv6ifname",
+ "use": "network"
+ },
+ "openssl": {
+ "description": "OpenSSL",
+ "type": "compile",
+ "test": "unix/openssl"
+ },
+ "sctp": {
+ "description": "SCTP support",
+ "type": "compile",
+ "test": "unix/sctp",
+ "use": "network"
+ }
+ },
+
+ "features": {
+ "corewlan": {
+ "description": "CoreWLan",
+ "condition": "libs.corewlan",
+ "emitIf": "config.darwin",
+ "output": [ "feature", "privateFeature" ]
+ },
+ "getaddrinfo": {
+ "description": "getaddrinfo()",
+ "condition": "tests.getaddrinfo",
+ "output": [ "feature" ]
+ },
+ "getifaddrs": {
+ "description": "getifaddrs()",
+ "condition": "tests.getifaddrs",
+ "output": [ "feature" ]
+ },
+ "ipv6ifname": {
+ "description": "IPv6 ifname",
+ "condition": "tests.ipv6ifname",
+ "output": [ "feature" ]
+ },
+ "libproxy": {
+ "description": "libproxy",
+ "autoDetect": false,
+ "condition": "libs.libproxy",
+ "output": [ "privateFeature" ]
+ },
+ "openssl": {
+ "description": "OpenSSL",
+ "enable": "input.openssl == 'yes' || input.openssl == 'linked' || input.openssl == 'runtime'",
+ "disable": "input.openssl == 'no' || input.ssl == 'no'",
+ "autoDetect": "!config.winrt",
+ "condition": "!features.securetransport && tests.openssl",
+ "output": [
+ "privateFeature",
+ { "type": "publicQtConfig", "condition": "!features.openssl-linked" },
+ { "type": "define", "negative": true, "name": "QT_NO_OPENSSL" }
+ ]
+ },
+ "openssl-linked": {
+ "description": " Qt directly linked to OpenSSL",
+ "enable": "input.openssl == 'linked'",
+ "disable": "input.openssl != 'linked'",
+ "condition": "features.openssl && libs.openssl",
+ "output": [
+ "privateFeature",
+ { "type": "varAssign", "name": "OPENSSL_LIBS", "value": "libs.openssl.libs", "eval": "true" },
+ { "type": "varAssign", "name": "OPENSSL_LIBS_DEBUG", "value": "libs.openssl.builds.debug.libs",
+ "eval": "true", "condition": "config.win32" },
+ { "type": "varAssign", "name": "OPENSSL_LIBS_RELEASE", "value": "libs.openssl.builds.release.libs",
+ "eval": "true", "condition": "config.win32" },
+ { "type": "define", "name": "QT_LINKED_OPENSSL" }
+ ]
+ },
+ "securetransport": {
+ "description": "SecureTransport",
+ "disable": "input.securetransport == 'no' || input.ssl == 'no'",
+ "condition": "config.darwin && (input.openssl == '' || input.openssl == 'no')",
+ "output": [
+ "privateFeature",
+ { "type": "define", "name": "QT_SECURETRANSPORT" }
+ ]
+ },
+ "ssl": {
+ "description": "SSL",
+ "condition": "config.winrt || features.securetransport || features.openssl",
+ "output": [ "publicFeature", "feature" ]
+ },
+ "sctp": {
+ "description": "SCTP",
+ "autoDetect": false,
+ "condition": "tests.sctp",
+ "output": [ "publicFeature", "feature" ]
+ },
+ "system-proxies": {
+ "description": "Use system proxies",
+ "output": [ "privateFeature" ]
+ }
+ },
+
+ "report": [
+ {
+ "type": "note",
+ "condition": "features.openssl-linked && libs.openssl.source != 0
+ && input.openssl.prefix == '' && input.openssl.libs == '' && input.openssl.libs.debug == ''",
+ "message": "When linking against OpenSSL, you can override the default
+library names through OPENSSL_LIBS.
+For example:
+ OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
+ }
+ ],
+
+ "summary": [
+ {
+ "section": "Qt Network",
+ "entries": [
+ {
+ "type": "feature",
+ "args": "corewlan",
+ "condition": "config.darwin"
+ },
+ "getaddrinfo", "getifaddrs", "ipv6ifname", "libproxy",
+ {
+ "type": "feature",
+ "args": "securetransport",
+ "condition": "config.darwin"
+ },
+ "openssl",
+ "openssl-linked",
+ "sctp",
+ "system-proxies"
+ ]
+ }
+ ]
+}
diff --git a/src/network/configure.pri b/src/network/configure.pri
new file mode 100644
index 0000000000..57568902e4
--- /dev/null
+++ b/src/network/configure.pri
@@ -0,0 +1,12 @@
+# custom tests
+
+defineTest(qtConfLibrary_openssl) {
+ libs = $$getenv("OPENSSL_LIBS")
+ !isEmpty(libs) {
+ $${1}.libs = $$libs
+ export($${1}.libs)
+ return(true)
+ }
+ return(false)
+}
+
diff --git a/src/network/kernel/qtnetworkglobal.h b/src/network/kernel/qtnetworkglobal.h
index 192601970a..586b847816 100644
--- a/src/network/kernel/qtnetworkglobal.h
+++ b/src/network/kernel/qtnetworkglobal.h
@@ -41,6 +41,7 @@
#define QTNETWORKGLOBAL_H
#include <QtCore/qglobal.h>
+#include <QtNetwork/qtnetwork-config.h>
QT_BEGIN_NAMESPACE
diff --git a/src/network/kernel/qtnetworkglobal_p.h b/src/network/kernel/qtnetworkglobal_p.h
index 51347e440d..859e3d9ebd 100644
--- a/src/network/kernel/qtnetworkglobal_p.h
+++ b/src/network/kernel/qtnetworkglobal_p.h
@@ -53,5 +53,6 @@
#include <QtNetwork/qtnetworkglobal.h>
#include <QtCore/private/qglobal_p.h>
+#include <QtNetwork/private/qtnetwork-config_p.h>
#endif // QTNETWORKGLOBAL_P_H
diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
index 96ba68089d..ce78399e01 100644
--- a/src/network/ssl/qsslcertificate.cpp
+++ b/src/network/ssl/qsslcertificate.cpp
@@ -111,7 +111,7 @@
\value EmailAddress The email address associated with the certificate
*/
-#include <QtCore/qglobal.h>
+#include <QtNetwork/qtnetworkglobal.h>
#ifndef QT_NO_OPENSSL
#include "qsslsocket_openssl_symbols_p.h"
#endif
diff --git a/src/platformsupport/fbconvenience/qfbvthandler_p.h b/src/platformsupport/fbconvenience/qfbvthandler_p.h
index e05a9d3ffc..17d07317b2 100644
--- a/src/platformsupport/fbconvenience/qfbvthandler_p.h
+++ b/src/platformsupport/fbconvenience/qfbvthandler_p.h
@@ -51,6 +51,7 @@
// We mean it.
//
+#include <QtGui/private/qtguiglobal_p.h>
#include <QObject>
QT_BEGIN_NAMESPACE
diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h b/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h
index b29aa3a793..6554d4998c 100644
--- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h
+++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h
@@ -51,6 +51,7 @@
// We mean it.
//
+#include <QtGui/private/qtguiglobal_p.h>
#include <QObject>
#include <QString>
#include <QList>
diff --git a/src/plugins/bearer/bearer.pro b/src/plugins/bearer/bearer.pro
index 8078a5708c..b362722b28 100644
--- a/src/plugins/bearer/bearer.pro
+++ b/src/plugins/bearer/bearer.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += network-private
!android:linux*:qtHaveModule(dbus) {
SUBDIRS += generic
diff --git a/src/plugins/generic/generic.pro b/src/plugins/generic/generic.pro
index c0a81d4dc8..69e832906b 100644
--- a/src/plugins/generic/generic.pro
+++ b/src/plugins/generic/generic.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui-private
load(qfeatures)
diff --git a/src/plugins/imageformats/imageformats.pro b/src/plugins/imageformats/imageformats.pro
index d2588c1b18..9d1c0c8fdf 100644
--- a/src/plugins/imageformats/imageformats.pro
+++ b/src/plugins/imageformats/imageformats.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui-private
qtConfig(ico): SUBDIRS += ico
qtConfig(jpeg): SUBDIRS += jpeg
diff --git a/src/plugins/platforminputcontexts/platforminputcontexts.pro b/src/plugins/platforminputcontexts/platforminputcontexts.pro
index f22b8b69db..ed6b1b8702 100644
--- a/src/plugins/platforminputcontexts/platforminputcontexts.pro
+++ b/src/plugins/platforminputcontexts/platforminputcontexts.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui-private
qtHaveModule(dbus) {
!mac:!win32:SUBDIRS += ibus
diff --git a/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro b/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro
index b46b04d149..d86a67b4f4 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro
+++ b/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui-private
qtConfig(egl_x11): SUBDIRS += eglfs_x11
qtConfig(eglfs_gbm): SUBDIRS += eglfs_kms_support eglfs_kms
diff --git a/src/plugins/platforms/platforms.pro b/src/plugins/platforms/platforms.pro
index fcfebf6e94..938e63d95a 100644
--- a/src/plugins/platforms/platforms.pro
+++ b/src/plugins/platforms/platforms.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui-private
android: SUBDIRS += android
diff --git a/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro
index 0cdee03f62..b8f878ffe8 100644
--- a/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro
+++ b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui-private
qtConfig(egl):qtConfig(egl_x11):qtConfig(opengl) {
SUBDIRS += xcb_egl
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
index 6ad8a36460..f6ba828a15 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.h
+++ b/src/plugins/platforms/xcb/qxcbconnection.h
@@ -43,6 +43,7 @@
#include <xcb/xcb.h>
#include <xcb/randr.h>
+#include <QtGui/private/qtguiglobal_p.h>
#include "qxcbexport.h"
#include <QHash>
#include <QList>
diff --git a/src/plugins/platforms/xcb/xcb.pro b/src/plugins/platforms/xcb/xcb.pro
index 7840a4583f..0d27645a60 100644
--- a/src/plugins/platforms/xcb/xcb.pro
+++ b/src/plugins/platforms/xcb/xcb.pro
@@ -1,5 +1,6 @@
TEMPLATE = subdirs
CONFIG += ordered
+QT_FOR_CONFIG += gui-private
!qtConfig(system-xcb): SUBDIRS += xcb-static
diff --git a/src/plugins/platformthemes/platformthemes.pro b/src/plugins/platformthemes/platformthemes.pro
index 166b39ce8c..0e2812bed3 100644
--- a/src/plugins/platformthemes/platformthemes.pro
+++ b/src/plugins/platformthemes/platformthemes.pro
@@ -1,3 +1,4 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += widgets-private
-qtConfig(gtk3): SUBDIRS += gtk3
+qtHaveModule(widgets):qtConfig(gtk3): SUBDIRS += gtk3
diff --git a/src/plugins/printsupport/printsupport.pro b/src/plugins/printsupport/printsupport.pro
index 55feaba40c..05cf1bc0b2 100644
--- a/src/plugins/printsupport/printsupport.pro
+++ b/src/plugins/printsupport/printsupport.pro
@@ -1,5 +1,5 @@
-QT += printsupport
TEMPLATE = subdirs
+QT_FOR_CONFIG += printsupport-private
osx: SUBDIRS += cocoa
win32: SUBDIRS += windows
diff --git a/src/plugins/sqldrivers/sqldrivers.pro b/src/plugins/sqldrivers/sqldrivers.pro
index afd2008826..30fb6019ce 100644
--- a/src/plugins/sqldrivers/sqldrivers.pro
+++ b/src/plugins/sqldrivers/sqldrivers.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += sql
qtConfig(sql-psql) : SUBDIRS += psql
qtConfig(sql-mysql) : SUBDIRS += mysql
diff --git a/src/printsupport/configure.json b/src/printsupport/configure.json
new file mode 100644
index 0000000000..986bb9d678
--- /dev/null
+++ b/src/printsupport/configure.json
@@ -0,0 +1,42 @@
+{
+ "module": "printsupport",
+ "depends": [
+ "core",
+ "gui",
+ "widgets"
+ ],
+ "testDir": "../../config.tests",
+
+ "commandline": {
+ "options": {
+ "cups": "boolean"
+ }
+ },
+
+ "libraries": {
+ "cups": {
+ "description": "CUPS",
+ "test": "unix/cups",
+ "sources": [
+ "-lcups"
+ ]
+ }
+ },
+
+ "features": {
+ "cups": {
+ "description": "CUPS",
+ "condition": "libs.cups",
+ "output": [ "privateFeature", "feature" ]
+ }
+ },
+
+ "summary": [
+ {
+ "section": "Qt PrintSupport",
+ "entries": [
+ "cups"
+ ]
+ }
+ ]
+}
diff --git a/src/printsupport/kernel/qtprintsupportglobal.h b/src/printsupport/kernel/qtprintsupportglobal.h
index c060b98958..67779af5a2 100644
--- a/src/printsupport/kernel/qtprintsupportglobal.h
+++ b/src/printsupport/kernel/qtprintsupportglobal.h
@@ -41,6 +41,7 @@
#define QTPRINTSUPPORTGLOBAL_H
#include <QtWidgets/qtwidgetsglobal.h>
+#include <QtPrintSupport/qtprintsupport-config.h>
QT_BEGIN_NAMESPACE
diff --git a/src/sql/configure.json b/src/sql/configure.json
new file mode 100644
index 0000000000..2277fcb546
--- /dev/null
+++ b/src/sql/configure.json
@@ -0,0 +1,201 @@
+{
+ "module": "sql",
+ "depends": [
+ "core"
+ ],
+ "testDir": "../../config.tests",
+
+ "commandline": {
+ "assignments": {
+ "MYSQL_PATH": "mysql.prefix",
+ "PSQL_LIBS": "psql.libs",
+ "SYBASE": "tds.prefix",
+ "SYBASE_LIBS": "tds.libs"
+ },
+ "options": {
+ "mysql_config": "string",
+ "psql_config": "string",
+ "sqlite": { "type": "enum", "name": "system-sqlite", "values": { "qt": "no", "system": "yes" } },
+ "sql-db2": "boolean",
+ "sql-ibase": "boolean",
+ "sql-mysql": "boolean",
+ "sql-oci": "boolean",
+ "sql-odbc": "boolean",
+ "sql-psql": "boolean",
+ "sql-sqlite": "boolean",
+ "sql-sqlite2": "boolean",
+ "sql-tds": "boolean",
+ "plugin-sql-db2": { "type": "void", "name": "sql-db2" },
+ "plugin-sql-ibase": { "type": "void", "name": "sql-ibase" },
+ "plugin-sql-mysql": { "type": "void", "name": "sql-mysql" },
+ "plugin-sql-oci": { "type": "void", "name": "sql-oci" },
+ "plugin-sql-odbc": { "type": "void", "name": "sql-odbc" },
+ "plugin-sql-psql": { "type": "void", "name": "sql-psql" },
+ "plugin-sql-sqlite": { "type": "void", "name": "sql-sqlite" },
+ "plugin-sql-sqlite2": { "type": "void", "name": "sql-sqlite2" },
+ "plugin-sql-tds": { "type": "void", "name": "sql-tds" }
+ }
+ },
+
+ "libraries": {
+ "db2": {
+ "description": "DB2 (IBM)",
+ "test": "unix/db2",
+ "sources": [
+ { "libs": "-ldb2cli", "condition": "config.win32" },
+ { "libs": "-ldb2", "condition": "!config.win32" }
+ ]
+ },
+ "ibase": {
+ "description": "InterBase",
+ "test": "unix/ibase",
+ "sources": [
+ { "libs": "-lgds32_ms", "condition": "config.win32" },
+ { "libs": "-lgds", "condition": "!config.win32" }
+ ]
+ },
+ "mysql": {
+ "description": "MySQL",
+ "test": "unix/mysql",
+ "sources": [
+ { "type": "mysqlConfig", "query": "--libs_r" },
+ { "type": "mysqlConfig", "query": "--libs" },
+ { "libs": "-lmysqlclient_r", "condition": "!config.win32" },
+ { "libs": "-llibmysql", "condition": "config.win32" },
+ { "libs": "-lmysqlclient", "condition": "!config.win32" }
+ ]
+ },
+ "psql": {
+ "description": "PostgreSQL",
+ "test": "unix/psql",
+ "sources": [
+ { "type": "psqlConfig" },
+ { "type": "psqlEnv", "libs": "-llibpq -lws2_32 -ladvapi32", "condition": "config.win32" },
+ { "type": "psqlEnv", "libs": "-lpq", "condition": "!config.win32" }
+ ]
+ },
+ "tds": {
+ "description": "TDS (Sybase)",
+ "test": "unix/tds",
+ "sources": [
+ { "type": "sybaseEnv", "libs": "-lNTWDBLIB", "condition": "config.win32" },
+ { "type": "sybaseEnv", "libs": "-lsybdb", "condition": "!config.win32" }
+ ]
+ },
+ "oci": {
+ "description": "OCI (Oracle)",
+ "test": "unix/oci",
+ "sources": [
+ { "libs": "-loci", "condition": "config.win32" },
+ { "libs": "-lclntsh", "condition": "!config.win32" }
+ ]
+ },
+ "odbc": {
+ "description": "ODBC",
+ "test": "unix/odbc",
+ "sources": [
+ { "libs": "-lodbc32", "condition": "config.win32" },
+ { "libs": "-liodbc", "condition": "config.darwin" },
+ { "libs": "-lodbc", "condition": "!config.win32 && !config.darwin" }
+ ]
+ },
+ "sqlite2": {
+ "description": "SQLite (version 2)",
+ "test": "unix/sqlite2",
+ "sources": [
+ "-lsqlite"
+ ]
+ },
+ "sqlite3": {
+ "description": "SQLite (version 3)",
+ "export": "sqlite",
+ "test": "unix/sqlite",
+ "sources": [
+ { "type": "pkgConfig", "args": "sqlite3" },
+ { "libs": "-lsqlite3", "condition": "config.win32" },
+ { "libs": "-lsqlite3 -lz", "condition": "!config.win32" }
+ ]
+ }
+ },
+
+ "tests": {
+ },
+
+ "features": {
+ "sql-db2": {
+ "description": "DB2 (IBM)",
+ "condition": "libs.db2",
+ "output": [ "publicFeature" ]
+ },
+ "sql-ibase": {
+ "description": "InterBase",
+ "condition": "libs.ibase",
+ "output": [ "publicFeature" ]
+ },
+ "sql-mysql": {
+ "description": "MySql",
+ "condition": "libs.mysql",
+ "output": [ "publicFeature" ]
+ },
+ "use_libmysqlclient_r": {
+ "description": "MySql (threadsafe)",
+ "condition": "features.sql-mysql && (libs.mysql.source == 0 || libs.mysql.source == 2)",
+ "output": [ "privateConfig" ]
+ },
+ "sql-oci": {
+ "description": "OCI (Oracle)",
+ "condition": "libs.oci",
+ "output": [ "publicFeature" ]
+ },
+ "sql-odbc": {
+ "description": "ODBC",
+ "condition": "libs.odbc",
+ "output": [ "publicFeature" ]
+ },
+ "sql-psql": {
+ "description": "PostgreSQL",
+ "condition": "libs.psql",
+ "output": [ "publicFeature" ]
+ },
+ "sql-sqlite2": {
+ "description": "SQLite2",
+ "condition": "libs.sqlite2",
+ "output": [ "publicFeature" ]
+ },
+ "sql-sqlite": {
+ "description": "SQLite",
+ "output": [ "publicFeature" ]
+ },
+ "system-sqlite": {
+ "description": " Using system provided SQLite",
+ "autoDetect": false,
+ "condition": "features.sql-sqlite && libs.sqlite3",
+ "output": [ "publicQtConfig" ]
+ },
+ "sql-tds": {
+ "description": "TDS (Sybase)",
+ "condition": "libs.tds",
+ "output": [ "publicFeature" ]
+ }
+ },
+
+ "report": [
+ {
+ "type": "warning",
+ "condition": "config.win32 && !config.msvc && features.sql-oci",
+ "message": "Qt does not support compiling the Oracle database driver with
+MinGW, due to lack of such support from Oracle. Consider disabling the
+Oracle driver, as the current build will most likely fail."
+ }
+ ],
+
+ "summary": [
+ {
+ "section": "Qt Sql",
+ "entries": [
+ "sql-db2", "sql-ibase", "sql-mysql", "sql-oci", "sql-odbc", "sql-psql",
+ "sql-sqlite2", "sql-sqlite", "system-sqlite", "sql-tds"
+ ]
+ }
+ ]
+}
diff --git a/src/sql/configure.pri b/src/sql/configure.pri
new file mode 100644
index 0000000000..948808f4f7
--- /dev/null
+++ b/src/sql/configure.pri
@@ -0,0 +1,89 @@
+# custom tests
+
+defineReplace(filterLibraryPath) {
+ str = $${1}
+ for (l, QMAKE_DEFAULT_LIBDIRS): \
+ str -= "-L$$l"
+
+ return($$str)
+}
+
+defineTest(qtConfLibrary_psqlConfig) {
+ pg_config = $$config.input.psql_config
+ isEmpty(pg_config): \
+ pg_config = $$qtConfFindInPath("pg_config")
+ !win32:!isEmpty(pg_config) {
+ qtRunLoggedCommand("$$pg_config --libdir", libdir)|return(false)
+ qtRunLoggedCommand("$$pg_config --includedir", includedir)|return(false)
+ libdir -= $$QMAKE_DEFAULT_LIBDIRS
+ libs =
+ !isEmpty(libdir): libs += "-L$$libdir"
+ libs += "-lpq"
+ $${1}.libs = "$$val_escape(libs)"
+ includedir -= $$QMAKE_DEFAULT_INCDIRS
+ $${1}.includedir = "$$val_escape(includedir)"
+ !isEmpty(includedir): \
+ $${1}.cflags = "-I$$val_escape(includedir)"
+ export($${1}.libs)
+ export($${1}.includedir)
+ export($${1}.cflags)
+ return(true)
+ }
+ return(false)
+}
+
+defineTest(qtConfLibrary_psqlEnv) {
+ # Respect PSQL_LIBS if set
+ PSQL_LIBS = $$getenv(PSQL_LIBS)
+ !isEmpty(PSQL_LIBS) {
+ $${1}.libs = $$PSQL_LIBS
+ export($${1}.libs)
+ }
+ return(true)
+}
+
+defineTest(qtConfLibrary_mysqlConfig) {
+ mysql_config = $$config.input.mysql_config
+ isEmpty(mysql_config): \
+ mysql_config = $$qtConfFindInPath("mysql_config")
+ !isEmpty(mysql_config) {
+ qtRunLoggedCommand("$$mysql_config --version", version)|return(false)
+ version = $$split(version, '.')
+ version = $$first(version)
+ isEmpty(version)|lessThan(version, 4): return(false)]
+
+ # query is either --libs or --libs_r
+ query = $$eval($${1}.query)
+ qtRunLoggedCommand("$$mysql_config $$query", libs)|return(false)
+ qtRunLoggedCommand("$$mysql_config --include", includedir)|return(false)
+ eval(libs = $$libs)
+ libs = $$filterLibraryPath($$libs)
+ # -rdynamic should not be returned by mysql_config, but is on RHEL 6.6
+ libs -= -rdynamic
+ $${1}.libs = "$$val_escape(libs)"
+ eval(includedir = $$includedir)
+ includedir ~= s/^-I//g
+ includedir -= $$QMAKE_DEFAULT_INCDIRS
+ $${1}.includedir = "$$val_escape(includedir)"
+ !isEmpty(includedir): \
+ $${1}.cflags = "-I$$val_escape(includedir)"
+ export($${1}.libs)
+ export($${1}.includedir)
+ export($${1}.cflags)
+ return(true)
+ }
+ return(false)
+}
+
+defineTest(qtConfLibrary_sybaseEnv) {
+ libs =
+ sybase = $$getenv(SYBASE)
+ !isEmpty(sybase): \
+ libs += "-L$${sybase}/lib"
+ libs += $$getenv(SYBASE_LIBS)
+ !isEmpty(libs) {
+ $${1}.libs = "$$val_escape(libs)"
+ export($${1}.libs)
+ }
+ return(true)
+}
diff --git a/src/src.pro b/src/src.pro
index 96a88a62ac..60d6a57e2a 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,5 +1,9 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += gui-private
+include($$OUT_PWD/corelib/qtcore-config.pri)
+include($$OUT_PWD/gui/qtgui-config.pri)
+
src_qtzlib.file = $$PWD/corelib/qtzlib.pro
src_qtzlib.target = sub-zlib
diff --git a/src/widgets/configure.json b/src/widgets/configure.json
new file mode 100644
index 0000000000..23ee540c32
--- /dev/null
+++ b/src/widgets/configure.json
@@ -0,0 +1,97 @@
+{
+ "module": "widgets",
+ "depends": [
+ "core-private",
+ "gui"
+ ],
+ "testDir": "../../config.tests",
+
+ "commandline": {
+ "options": {
+ "android-style-assets": "boolean",
+ "gtk": { "type": "boolean", "name": "gtk3" },
+ "style-windows": "boolean",
+ "style-windowsxp": "boolean",
+ "style-windowsvista": "boolean",
+ "style-fusion": "boolean",
+ "style-mac": "boolean",
+ "style-android": "boolean"
+ }
+ },
+
+ "libraries": {
+ "gtk3": {
+ "description": "GTK+",
+ "sources": [
+ { "type": "pkgConfig", "args": "gtk+-3.0" }
+ ]
+ }
+ },
+
+ "tests": {
+ "uxtheme": {
+ "description": "uxtheme.h",
+ "type": "files",
+ "files": [ "uxtheme.h" ]
+ }
+ },
+
+ "features": {
+ "gtk3": {
+ "description": "GTK+",
+ "autoDetect": "!config.darwin",
+ "condition": "features.glib && libs.gtk3",
+ "output": [ "privateFeature" ]
+ },
+ "style-fusion": {
+ "description": "Fusion Style",
+ "output": [ "styles" ]
+ },
+ "style-mac": {
+ "description": "Mac Style",
+ "condition": "config.osx",
+ "output": [ "styles" ]
+ },
+ "style-windows": {
+ "description": "Windows Style",
+ "output": [ "styles" ]
+ },
+ "style-windowsxp": {
+ "description": "Windows XP Style",
+ "condition": "features.style-windows && config.win32 && !config.winrt && tests.uxtheme",
+ "output": [ "styles" ]
+ },
+ "style-windowsvista": {
+ "description": "Windows Vista Style",
+ "condition": "features.style-windowsxp",
+ "output": [ "styles" ]
+ },
+ "style-android": {
+ "description": "Android Style",
+ "autoDetect": "config.android",
+ "output": [ "styles" ]
+ },
+ "android-style-assets": {
+ "description": "Android Style Assets",
+ "condition": "features.style-android",
+ "output": [ "privateConfig" ]
+ }
+ },
+
+ "report": [
+ ],
+
+ "summary": [
+ {
+ "section": "Qt Widgets",
+ "entries": [
+ "gtk3",
+ {
+ "message": "Styles",
+ "type": "featureList",
+ "args": "style-fusion style-mac style-windows style-windowsxp style-windowsvista style-android"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/widgets/configure.pri b/src/widgets/configure.pri
new file mode 100644
index 0000000000..ddb3657700
--- /dev/null
+++ b/src/widgets/configure.pri
@@ -0,0 +1,8 @@
+# custom outputs
+
+defineTest(qtConfOutput_styles) {
+ !$${2}: return()
+
+ style = $$replace($${1}.feature, "style-", "")
+ qtConfOutputVar(append, "privatePro", "styles", $$style)
+}
diff --git a/src/widgets/kernel/qtwidgetsglobal.h b/src/widgets/kernel/qtwidgetsglobal.h
index f6d003e629..1c74f37618 100644
--- a/src/widgets/kernel/qtwidgetsglobal.h
+++ b/src/widgets/kernel/qtwidgetsglobal.h
@@ -41,6 +41,7 @@
#define QTWIDGETSGLOBAL_H
#include <QtGui/qtguiglobal.h>
+#include <QtWidgets/qtwidgets-config.h>
QT_BEGIN_NAMESPACE
diff --git a/src/widgets/kernel/qtwidgetsglobal_p.h b/src/widgets/kernel/qtwidgetsglobal_p.h
index 7dd545415c..22ba876022 100644
--- a/src/widgets/kernel/qtwidgetsglobal_p.h
+++ b/src/widgets/kernel/qtwidgetsglobal_p.h
@@ -53,5 +53,6 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtGui/private/qtguiglobal_p.h>
+#include <QtWidgets/private/qtwidgets-config_p.h>
#endif // QTWIDGETSGLOBAL_P_H
diff --git a/src/widgets/styles/styles.pri b/src/widgets/styles/styles.pri
index 7b9497172c..69e13fb6ec 100644
--- a/src/widgets/styles/styles.pri
+++ b/src/widgets/styles/styles.pri
@@ -35,6 +35,8 @@ SOURCES += \
RESOURCES += styles/qstyle.qrc
+include($$OUT_PWD/qtwidgets-config.pri)
+
contains( styles, mac ) {
HEADERS += \
styles/qmacstyle_mac_p.h \
diff --git a/tests/auto/corelib/json/json.pro b/tests/auto/corelib/json/json.pro
index dc9cd3e383..16c2ae2fb7 100644
--- a/tests/auto/corelib/json/json.pro
+++ b/tests/auto/corelib/json/json.pro
@@ -1,5 +1,5 @@
TARGET = tst_json
-QT = core testlib
+QT = core-private testlib
CONFIG -= app_bundle
CONFIG += testcase
diff --git a/tests/auto/corelib/tools/qcollator/qcollator.pro b/tests/auto/corelib/tools/qcollator/qcollator.pro
index 7725194e3d..2f3995a75f 100644
--- a/tests/auto/corelib/tools/qcollator/qcollator.pro
+++ b/tests/auto/corelib/tools/qcollator/qcollator.pro
@@ -1,6 +1,6 @@
CONFIG += testcase
TARGET = tst_qcollator
-QT = core testlib
+QT = core-private testlib
SOURCES = tst_qcollator.cpp
DEFINES += QT_NO_CAST_TO_ASCII
qtConfig(icu): DEFINES += QT_USE_ICU
diff --git a/tests/auto/corelib/tools/qstring/qstring.pro b/tests/auto/corelib/tools/qstring/qstring.pro
index a94ad3405a..ec8a9b5df5 100644
--- a/tests/auto/corelib/tools/qstring/qstring.pro
+++ b/tests/auto/corelib/tools/qstring/qstring.pro
@@ -1,6 +1,6 @@
CONFIG += testcase
TARGET = tst_qstring
-QT = core testlib
+QT = core-private testlib
SOURCES = tst_qstring.cpp
DEFINES += QT_NO_CAST_TO_ASCII
qtConfig(icu): DEFINES += QT_USE_ICU
diff --git a/tests/auto/gui/image/qmovie/qmovie.pro b/tests/auto/gui/image/qmovie/qmovie.pro
index 6a7e23be99..1de428a685 100644
--- a/tests/auto/gui/image/qmovie/qmovie.pro
+++ b/tests/auto/gui/image/qmovie/qmovie.pro
@@ -1,6 +1,7 @@
CONFIG += testcase
TARGET = tst_qmovie
QT += testlib
+QT_FOR_CONFIG += gui-private
qtHaveModule(widgets): QT += widgets
SOURCES += tst_qmovie.cpp
MOC_DIR=tmp
diff --git a/tests/auto/network/access/qnetworkreply/test/test.pro b/tests/auto/network/access/qnetworkreply/test/test.pro
index 47e7f5ed15..45a5734305 100644
--- a/tests/auto/network/access/qnetworkreply/test/test.pro
+++ b/tests/auto/network/access/qnetworkreply/test/test.pro
@@ -5,6 +5,7 @@ SOURCES += ../tst_qnetworkreply.cpp
TARGET = ../tst_qnetworkreply
QT = core-private network-private testlib
+QT_FOR_CONFIG += gui-private
RESOURCES += ../qnetworkreply.qrc
TESTDATA += ../empty ../rfc3252.txt ../resource ../bigfile ../*.jpg ../certs \
diff --git a/tests/auto/network/socket/socket.pro b/tests/auto/network/socket/socket.pro
index 307f7e92de..06fe356a5a 100644
--- a/tests/auto/network/socket/socket.pro
+++ b/tests/auto/network/socket/socket.pro
@@ -1,4 +1,6 @@
TEMPLATE=subdirs
+QT_FOR_CONFIG += network
+
SUBDIRS=\
qhttpsocketengine \
qudpsocket \
diff --git a/tests/auto/network/ssl/ssl.pro b/tests/auto/network/ssl/ssl.pro
index 65e35ea4c0..ec74748f5b 100644
--- a/tests/auto/network/ssl/ssl.pro
+++ b/tests/auto/network/ssl/ssl.pro
@@ -1,4 +1,6 @@
TEMPLATE=subdirs
+QT_FOR_CONFIG += network
+
SUBDIRS=\
qsslcertificate \
qsslcipher \
diff --git a/tests/auto/other/other.pro b/tests/auto/other/other.pro
index 94b5847b2e..0babac4b6f 100644
--- a/tests/auto/other/other.pro
+++ b/tests/auto/other/other.pro
@@ -1,4 +1,6 @@
TEMPLATE=subdirs
+QT_FOR_CONFIG += gui-private
+
SUBDIRS=\
# atwrapper \ # QTBUG-19452
compiler \
diff --git a/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro b/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro
index 828f36348d..e152ac8200 100644
--- a/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro
+++ b/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro
@@ -1,6 +1,7 @@
TEMPLATE = app
TARGET = tst_bench_imageConversion
QT += testlib
+QT_FOR_CONFIG += gui-private
SOURCES += tst_qimageconversion.cpp
qtConfig(gif): DEFINES += QTEST_HAVE_GIF
diff --git a/tests/benchmarks/gui/image/qimagereader/qimagereader.pro b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro
index 7de1eedbdf..33e0c50bba 100644
--- a/tests/benchmarks/gui/image/qimagereader/qimagereader.pro
+++ b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro
@@ -1,4 +1,5 @@
QT += testlib
+QT_FOR_CONFIG += gui-private
TEMPLATE = app
TARGET = tst_bench_qimagereader
diff --git a/tests/benchmarks/network/network.pro b/tests/benchmarks/network/network.pro
index 01b3b80ef4..d53041eb61 100644
--- a/tests/benchmarks/network/network.pro
+++ b/tests/benchmarks/network/network.pro
@@ -1,4 +1,6 @@
TEMPLATE = subdirs
+QT_FOR_CONFIG += network-private
+
SUBDIRS = \
access \
kernel \