From 2d3c73fcfe7a93cb46190e8e82410fe93145dbe0 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 9 Sep 2016 09:50:08 +0200 Subject: 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 Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f Reviewed-by: Lars Knoll --- src/3rdparty/freetype/freetype.pro | 2 + src/3rdparty/pcre_dependency.pri | 6 +- src/angle/src/common/common.pri | 1 + .../src/compiler/preprocessor/preprocessor.pro | 1 + src/angle/src/compiler/translator.pro | 1 + src/corelib/configure.json | 434 ++++++++++ src/corelib/global/qglobal.h | 2 +- src/corelib/global/qglobal_p.h | 1 + src/gui/configure.json | 905 +++++++++++++++++++++ src/gui/configure.pri | 67 ++ src/gui/kernel/qtguiglobal.h | 1 + src/gui/kernel/qtguiglobal_p.h | 1 + src/network/configure.json | 216 +++++ src/network/configure.pri | 12 + src/network/kernel/qtnetworkglobal.h | 1 + src/network/kernel/qtnetworkglobal_p.h | 1 + src/network/ssl/qsslcertificate.cpp | 2 +- src/platformsupport/fbconvenience/qfbvthandler_p.h | 1 + .../input/evdevtouch/qevdevtouchhandler_p.h | 1 + src/plugins/bearer/bearer.pro | 1 + src/plugins/generic/generic.pro | 1 + src/plugins/imageformats/imageformats.pro | 1 + .../platforminputcontexts.pro | 1 + .../eglfs/deviceintegration/deviceintegration.pro | 1 + src/plugins/platforms/platforms.pro | 1 + .../xcb/gl_integrations/gl_integrations.pro | 1 + src/plugins/platforms/xcb/qxcbconnection.h | 1 + src/plugins/platforms/xcb/xcb.pro | 1 + src/plugins/platformthemes/platformthemes.pro | 3 +- src/plugins/printsupport/printsupport.pro | 2 +- src/plugins/sqldrivers/sqldrivers.pro | 1 + src/printsupport/configure.json | 42 + src/printsupport/kernel/qtprintsupportglobal.h | 1 + src/sql/configure.json | 201 +++++ src/sql/configure.pri | 89 ++ src/src.pro | 4 + src/widgets/configure.json | 97 +++ src/widgets/configure.pri | 8 + src/widgets/kernel/qtwidgetsglobal.h | 1 + src/widgets/kernel/qtwidgetsglobal_p.h | 1 + src/widgets/styles/styles.pri | 2 + 41 files changed, 2110 insertions(+), 7 deletions(-) create mode 100644 src/corelib/configure.json create mode 100644 src/gui/configure.json create mode 100644 src/gui/configure.pri create mode 100644 src/network/configure.json create mode 100644 src/network/configure.pri create mode 100644 src/printsupport/configure.json create mode 100644 src/sql/configure.json create mode 100644 src/sql/configure.pri create mode 100644 src/widgets/configure.json create mode 100644 src/widgets/configure.pri (limited to 'src') 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 -#include +#include #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 +#include #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 +#include 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 #include +#include #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 +#include 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 #include +#include #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 +#include #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 #include 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 #include #include #include 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 #include +#include #include "qxcbexport.h" #include #include 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 +#include 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 +#include 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 #include +#include #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 \ -- cgit v1.2.3