{ "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": { "label": "DoubleConversion", "test": "unix/doubleconversion", "sources": [ "-ldouble-conversion" ] }, "glib": { "label": "GLib", "test": "unix/glib", "sources": [ { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" } ] }, "gnu_iconv": { "label": "GNU libiconv", "export": "iconv", "test": "unix/gnu-libiconv", "sources": [ "-liconv" ] }, "icu": { "label": "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" } ], "use": [ { "lib": "libdl", "condition": "features.dlopen" } ] }, "journald": { "label": "journald", "test": "unix/journald", "sources": [ { "type": "pkgConfig", "args": "libsystemd" }, { "type": "pkgConfig", "args": "libsystemd-journal" } ] }, "libatomic": { "label": "64 bit atomics in libatomic", "test": "common/atomic64", "sources": [ "-latomic" ] }, "libdl": { "label": "dlopen()", "test": "unix/dlopen", "sources": [ "", "-ldl" ] }, "pcre2": { "label": "PCRE2", "test": "unix/pcre2", "sources": [ "-lpcre2-16" ] }, "pps": { "label": "PPS", "test": "unix/pps", "sources": [ "-lpps" ] }, "slog2": { "label": "slog2", "test": "unix/slog2", "export": "", "sources": [ "-lslog2" ] } }, "tests": { "atomic64": { "label": "64 bit atomics", "type": "compile", "test": "common/atomic64" }, "atomicfptr": { "label": "working std::atomic for function pointers", "type": "compile", "test": "common/atomicfptr" }, "clock-gettime": { "label": "clock_gettime()", "type": "compile", "test": "unix/clock-gettime" }, "clock-monotonic": { "label": "POSIX monotonic clock", "type": "compile", "test": "unix/clock-monotonic" }, "cloexec": { "label": "O_CLOEXEC", "type": "compile", "test": "unix/cloexec" }, "eventfd": { "label": "eventfd", "type": "compile", "test": "unix/eventfd" }, "posix-iconv": { "label": "POSIX iconv", "type": "compile", "test": "unix/iconv" }, "sun-iconv": { "label": "SUN libiconv", "type": "compile", "test": "unix/sun-libiconv" }, "inotify": { "label": "inotify", "type": "compile", "test": "unix/inotify" }, "ipc_sysv": { "label": "SysV IPC", "type": "compile", "test": "unix/ipc_sysv" }, "ipc_posix": { "label": "POSIX IPC", "type": "compile", "test": "unix/ipc_posix" }, "journald": { "label": "journald", "type": "compile", "test": "unix/journald" }, "ppoll": { "label": "ppoll()", "type": "compile", "test": "unix/ppoll" }, "pollts": { "label": "pollts()", "type": "compile", "test": "unix/pollts" }, "poll": { "label": "poll()", "type": "compile", "test": "unix/poll" }, "syslog": { "label": "syslog", "type": "compile", "test": "unix/syslog" }, "xlocalescanprint": { "label": "xlocale.h (or equivalents)", "type": "compile", "test": "common/xlocalescanprint" } }, "features": { "clock-gettime": { "label": "clock_gettime()", "condition": "tests.clock-gettime", "output": [ "privateFeature" ] }, "clock-monotonic": { "label": "POSIX monotonic clock", "condition": "features.clock-gettime && tests.clock-monotonic", "output": [ "feature" ] }, "dlopen": { "label": "dlopen()", "condition": "config.unix && libs.libdl", "output": [ "privateFeature" ] }, "doubleconversion": { "label": "DoubleConversion", "output": [ "privateFeature", "feature" ] }, "system-doubleconversion": { "label": " Using system DoubleConversion", "enable": "input.doubleconversion == 'system'", "disable": "input.doubleconversion == 'qt'", "condition": "features.doubleconversion && libs.doubleconversion", "output": [ "privateFeature" ] }, "eventfd": { "label": "eventfd", "condition": "tests.eventfd", "output": [ "feature" ] }, "glib": { "label": "GLib", "autoDetect": "!config.win32", "condition": "libs.glib", "output": [ "privateFeature", "feature" ] }, "iconv": { "label": "iconv", "purpose": "Provides internationalization on Unix.", "section": "Internationalization", "condition": "!features.icu && (features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv)", "output": [ "privateFeature", "feature" ] }, "posix-libiconv": { "label": "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", "output": [ "privateFeature" ] }, "sun-libiconv": { "label": "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" }, "gnu-libiconv": { "label": "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": { "label": "ICU", "autoDetect": "!config.win32", "condition": "libs.icu", "output": [ "privateFeature" ] }, "inotify": { "label": "inotify", "condition": "tests.inotify", "output": [ "privateFeature", "feature" ] }, "ipc_posix": { "label": "Using POSIX IPC", "autoDetect": "!config.win32", "condition": "!tests.ipc_sysv && tests.ipc_posix", "output": [ { "type": "define", "name": "QT_POSIX_IPC" } ] }, "journald": { "label": "journald", "autoDetect": false, "condition": "libs.journald", "output": [ "privateFeature" ] }, "std-atomic64": { "label": "64 bit atomic operations", "condition": "tests.atomic64 || libs.libatomic", "output": [ { "type": "define", "negative": true, "name": "QT_NO_STD_ATOMIC64" } ] }, "libatomic": { "label": "64 bit atomic operations in libatomic", "condition": "!tests.atomic64 && libs.libatomic", "output": [ "privateFeature" ] }, "mimetype": { "label": "Mimetype handling", "purpose": "Provides MIME type handling.", "section": "Utilities", "condition": "features.textcodec", "output": [ "publicFeature", "feature" ] }, "system-pcre2": { "label": "Using system PCRE2", "disable": "input.pcre == 'qt'", "enable": "input.pcre == 'system'", "condition": "libs.pcre2", "output": [ "privateFeature", { "type": "privateConfig", "negative": true, "name": "pcre2" } ] }, "poll_ppoll": { "label": "Native ppoll()", "emitIf": "!config.win32", "condition": "tests.ppoll", "output": [ "privateFeature" ] }, "poll_pollts": { "label": "Native pollts()", "emitIf": "!config.win32", "condition": "!features.poll_ppoll && tests.pollts", "output": [ "privateFeature" ] }, "poll_poll": { "label": "Native poll()", "emitIf": "!config.win32", "condition": "!features.poll_ppoll && !features.poll_pollts && tests.poll", "output": [ "privateFeature" ] }, "poll_select": { "label": "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": { "label": "PPS", "emitIf": "config.qnx", "condition": "libs.pps", "output": [ "privateConfig" ] }, "qeventtransition": { "label": "QEventTransition class", "condition": "features.statemachine", "output": [ "publicFeature" ] }, "slog2": { "label": "slog2", "condition": "libs.slog2", "output": [ "privateFeature" ] }, "syslog": { "label": "syslog", "autoDetect": false, "condition": "tests.syslog", "output": [ "privateFeature" ] }, "threadsafe-cloexec": { "label": "Threadsafe pipe creation", "condition": "tests.cloexec", "output": [ "publicQtConfig", { "type": "define", "name": "QT_THREADSAFE_CLOEXEC", "value": 1 } ] }, "properties": { "label": "Properties", "purpose": "Supports scripting Qt-based applications.", "section": "Kernel", "output": [ "publicFeature", "feature" ] }, "regularexpression": { "label": "QRegularExpression", "purpose": "Provides an API to Perl-compatible regular expressions.", "section": "Kernel", "output": [ "publicFeature", "feature" ] }, "sharedmemory": { "label": "QSharedMemory", "purpose": "Provides access to a shared memory segment.", "section": "Kernel", "condition": [ "config.android || config.win32 || (!config.vxworks && (tests.ipc_sysv || tests.ipc_posix))" ], "output": [ "publicFeature", "feature" ] }, "systemsemaphore": { "label": "QSystemSemaphore", "purpose": "Provides a general counting system semaphore.", "section": "Kernel", "condition": [ "!config.integrity && !config.vxworks", "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix" ], "output": [ "publicFeature", "feature" ] }, "xmlstream": { "label": "XML Streaming APIs", "purpose": "Provides a simple streaming API for XML.", "section": "Kernel", "output": [ "publicFeature", "feature" ] }, "xmlstreamreader": { "label": "QXmlStreamReader", "purpose": "Provides a well-formed XML parser with a simple streaming API.", "section": "Kernel", "condition": "features.xmlstream", "output": [ "publicFeature", "feature" ] }, "xmlstreamwriter": { "label": "QXmlStreamWriter", "purpose": "Provides a XML writer with a simple streaming API.", "section": "Kernel", "condition": "features.xmlstream", "output": [ "publicFeature", "feature" ] }, "textdate": { "label": "Text Date", "purpose": "Supports month and day names in dates.", "section": "Data structures", "output": [ "publicFeature", "feature" ] }, "datestring": { "label": "QDate/QTime/QDateTime", "purpose": "Provides convertion between dates and strings.", "section": "Data structures", "condition": "features.textdate", "output": [ "publicFeature", "feature" ] }, "process": { "label": "QProcess", "purpose": "Supports external process invocation.", "section": "File I/O", "condition": "features.processenvironment && !config.winrt && !config.uikit && !config.integrity && !config.vxworks", "output": [ "publicFeature", "feature" ] }, "processenvironment": { "label": "QProcessEnvironment", "purpose": "Provides a higher-level abstraction of environment variables.", "section": "File I/O", "condition": "!config.winrt && !config.integrity", "output": [ "publicFeature" ] }, "temporaryfile": { "label": "QTemporaryFile", "purpose": "Provides an I/O device that operates on temporary files.", "section": "File I/O", "output": [ "publicFeature", "feature" ] }, "library": { "label": "QLibrary", "purpose": "Provides a wrapper for dynamically loaded libraries.", "section": "File I/O", "condition": "config.win32 || config.hpux || (!config.nacl && features.dlopen)", "output": [ "publicFeature", "feature" ] }, "settings": { "label": "QSettings", "purpose": "Provides persistent application settings.", "section": "File I/O", "output": [ "publicFeature", "feature" ] }, "filesystemwatcher": { "label": "QFileSystemWatcher", "purpose": "Provides an interface for monitoring files and directories for modifications.", "section": "File I/O", "condition": "!config.winrt", "output": [ "publicFeature", "feature" ] }, "filesystemiterator": { "label": "QFileSystemIterator", "purpose": "Provides fast file system iteration.", "section": "File I/O", "output": [ "publicFeature", "feature" ] }, "itemmodel": { "label": "Qt Item Model", "purpose": "Provides the item model for item views", "section": "ItemViews", "output": [ "publicFeature", "feature" ] }, "proxymodel": { "label": "QAbstractProxyModel", "purpose": "Supports processing of data passed between another model and a view.", "section": "ItemViews", "condition": "features.itemmodel", "output": [ "publicFeature", "feature" ] }, "sortfilterproxymodel": { "label": "QSortFilterProxyModel", "purpose": "Supports sorting and filtering of data passed between another model and a view.", "section": "ItemViews", "condition": "features.proxymodel", "output": [ "publicFeature", "feature" ] }, "identityproxymodel": { "label": "QIdentityProxyModel", "purpose": "Supports proxying a source model unmodified.", "section": "ItemViews", "condition": "features.proxymodel", "output": [ "publicFeature", "feature" ] }, "stringlistmodel": { "label": "QStringListModel", "purpose": "Provides a model that supplies strings to views.", "section": "ItemViews", "condition": "features.itemmodel", "output": [ "publicFeature", "feature" ] }, "translation": { "label": "Translation", "purpose": "Supports translations using QObject::tr().", "section": "Internationalization", "output": [ "publicFeature", "feature" ] }, "textcodec": { "label": "QTextCodec", "purpose": "Supports conversions between text encodings.", "section": "Internationalization", "output": [ "publicFeature", "feature" ] }, "codecs": { "label": "Codecs", "purpose": "Supports non-unicode text conversions.", "section": "Internationalization", "condition": "features.textcodec", "output": [ "publicFeature", "feature" ] }, "big_codecs": { "label": "Big Codecs", "purpose": "Supports big codecs, e.g. CJK.", "section": "Internationalization", "condition": "features.textcodec", "output": [ "publicFeature", "feature" ] }, "animation": { "label": "Animation", "purpose": "Provides a framework for animations.", "section": "Utilities", "condition": "features.properties", "output": [ "publicFeature", "feature" ] }, "statemachine": { "label": "State machine", "purpose": "Provides hierarchical finite state machines.", "section": "Utilities", "condition": "features.properties", "output": [ "publicFeature", "feature" ] }, "gestures": { "label": "Gesture", "purpose": "Provides a framework for gestures.", "section": "Utilities", "output": [ "publicFeature", "feature" ] }, "sha3-fast": { "label": "Speed optimized SHA3", "purpose": "Optimizes SHA3 for speed instead of size.", "section": "Utilities", "output": [ "privateFeature" ] }, "timezone": { "label": "QTimeZone", "purpose": "Provides support for timezone handling.", "section": "Utilities", "output": [ "publicFeature" ] }, "commandlineparser": { "label": "QCommandlineParser", "purpose": "Provides support for command line parsing.", "section": "Utilities", "output": [ "publicFeature" ] }, "topleveldomain": { "label": "QUrl::topLevelDomain()", "purpose": "Provides support for extracting the top level domain from URLs. If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org, Mozilla License) is included. The data is then also used in QNetworkCookieJar::validateCookie.", "section": "Utilities", "output": [ "publicFeature" ] } }, "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-pcre2" ] } ] }