Convert the old feature system
... to the new qmake based configuration system. This removes the old qfeatures.txt (distributed over configure.json files) and qfeatures.h (distributed over qconfig-<module>.h files). qfeatures.prf is gone without replacement, as attempts to use it would lead to followup errors anyway. Change-Id: I1598de19db937082283a905b9592d3849d2199d0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This commit is contained in:
parent
b22471edf9
commit
a668c6a6b6
16
configure
vendored
16
configure
vendored
@ -753,21 +753,6 @@ while [ "$#" -gt 0 ]; do
|
||||
opensource)
|
||||
COMMERCIAL_USER="no"
|
||||
;;
|
||||
feature-*)
|
||||
FEATURE=`echo $VAR | sed 's,^[^-]*-\([^-]*\),\1,' | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
|
||||
if grep "^Feature: *${FEATURE} *\$" "$relpath"/src/corelib/global/qfeatures.txt >/dev/null 2>&1; then
|
||||
F=`echo $VAR | sed 's,^[^-]*-\([^-]*\),\1,'`
|
||||
if [ "$VAL" = "no" ]; then
|
||||
F="no-$F"
|
||||
elif [ "$VAL" != "yes" ] && [ "$VAL" != "unknown" ]; then
|
||||
UNKNOWN_OPT=yes
|
||||
fi
|
||||
CFG_FEATURES="$CFG_FEATURES $F"
|
||||
else
|
||||
echo "ERROR: Unknown feature $FEATURE"
|
||||
UNKNOWN_OPT=yes
|
||||
fi
|
||||
;;
|
||||
confirm-license)
|
||||
if [ "$VAL" = "yes" ]; then
|
||||
OPT_CONFIRM_LICENSE="$VAL"
|
||||
@ -1894,7 +1879,6 @@ fi
|
||||
|
||||
cat > "$outpath/config.tests/configure.cfg" <<EOF
|
||||
# Feature defaults set by configure command line
|
||||
config.input.extra_features = $CFG_FEATURES
|
||||
config.input.qt_edition = $Edition
|
||||
config.input.qt_licheck = $Licheck
|
||||
config.input.qt_release_date = $ReleaseDate
|
||||
|
@ -11,6 +11,7 @@
|
||||
"src/network",
|
||||
"src/sql",
|
||||
"src/gui",
|
||||
"src/xml",
|
||||
"src/widgets",
|
||||
"src/printsupport"
|
||||
],
|
||||
@ -933,6 +934,8 @@
|
||||
},
|
||||
"concurrent": {
|
||||
"label": "Qt Concurrent",
|
||||
"purpose": "Provides a high-level multi-threading API.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"dbus": {
|
||||
@ -1032,10 +1035,6 @@
|
||||
"autoDetect": false,
|
||||
"condition": "tests.wmf",
|
||||
"output": [ "publicQtConfig" ]
|
||||
},
|
||||
"extra_features": {
|
||||
"comment": "### remove, once qfeatures.txt is ported to the new system",
|
||||
"output": [ "extraFeatures" ]
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -379,43 +379,6 @@ defineTest(qtConfOutput_compilerVersion) {
|
||||
export($${currentConfig}.output.publicPro)
|
||||
}
|
||||
|
||||
# should go away when qfeatures.txt is ported
|
||||
defineTest(qtConfOutput_extraFeatures) {
|
||||
isEmpty(config.input.extra_features): return()
|
||||
|
||||
# write to qconfig.pri
|
||||
$${currentConfig}.output.publicPro += "$${LITERAL_HASH}ifndef QT_BOOTSTRAPPED"
|
||||
for (f, config.input.extra_features) {
|
||||
feature = $$replace(f, "^no-", "")
|
||||
FEATURE = $$upper($$replace(feature, -, _))
|
||||
contains(f, "^no-.*") {
|
||||
$${currentConfig}.output.publicPro += \
|
||||
"$${LITERAL_HASH}ifndef QT_NO_$$FEATURE" \
|
||||
"$${LITERAL_HASH}define QT_NO_$$FEATURE" \
|
||||
"$${LITERAL_HASH}endif"
|
||||
} else {
|
||||
$${currentConfig}.output.publicPro += \
|
||||
"$${LITERAL_HASH}if defined(QT_$$FEATURE) && defined(QT_NO_$$FEATURE)" \
|
||||
"$${LITERAL_HASH}undef QT_$$FEATURE" \
|
||||
"$${LITERAL_HASH}elif !defined(QT_$$FEATURE) && !defined(QT_NO_$$FEATURE)" \
|
||||
"$${LITERAL_HASH}define QT_$$FEATURE" \
|
||||
"$${LITERAL_HASH}endif"
|
||||
}
|
||||
}
|
||||
$${currentConfig}.output.publicPro += "$${LITERAL_HASH}endif"
|
||||
export($${currentConfig}.output.publicPro)
|
||||
|
||||
# write to qmodule.pri
|
||||
disabled_features =
|
||||
for (f, config.input.extra_features) {
|
||||
feature = $$replace(f, "^no-", "")
|
||||
FEATURE = $$upper($$replace(feature, -, _))
|
||||
contains(f, "^no-.*"): disabled_features += $$FEATURE
|
||||
}
|
||||
!isEmpty(disabled_features): qtConfOutputVar(assign, "privatePro", QT_NO_DEFINES, $$disabled_features)
|
||||
}
|
||||
|
||||
|
||||
defineTest(qtConfOutput_compilerFlags) {
|
||||
# this output also exports the variables locally, so that subsequent compiler tests can use them
|
||||
|
||||
|
@ -19,8 +19,7 @@ qtHaveModule(widgets) {
|
||||
multicastreceiver \
|
||||
multicastsender
|
||||
|
||||
load(qfeatures)
|
||||
!contains(QT_DISABLED_FEATURES, bearermanagement) {
|
||||
qtConfig(bearermanagement) {
|
||||
# no QProcess
|
||||
!vxworks:!qnx:!winrt:!integrity:!uikit: SUBDIRS += network-chat
|
||||
|
||||
|
@ -16,8 +16,7 @@ SUBDIRS = \
|
||||
|
||||
contains(DEFINES, QT_NO_TRANSLATION): SUBDIRS -= i18n
|
||||
|
||||
load(qfeatures)
|
||||
contains(QT_DISABLED_FEATURES, library) {
|
||||
!qtConfig(library) {
|
||||
SUBDIRS -= \
|
||||
echoplugin \
|
||||
plugandpaint
|
||||
|
@ -6,7 +6,6 @@ QMAKE_PLATFORM += android
|
||||
include(linux.conf)
|
||||
include(gcc-base-unix.conf)
|
||||
|
||||
DEFINES += QT_NO_PRINTER QT_NO_PRINTDIALOG
|
||||
QT_QPA_DEFAULT_PLATFORM = minimal
|
||||
|
||||
NDK_ROOT = $$(ANDROID_NDK_ROOT)
|
||||
|
@ -6,6 +6,6 @@ QMAKE_PLATFORM += uikit
|
||||
CONFIG += bitcode reduce_exports
|
||||
|
||||
INCLUDEPATH += $$PWD/uikit
|
||||
DEFINES += DARWIN_NO_CARBON QT_NO_PRINTER QT_NO_PRINTDIALOG
|
||||
DEFINES += DARWIN_NO_CARBON
|
||||
|
||||
include(mac.conf)
|
||||
|
@ -10,8 +10,7 @@ MAKEFILE_GENERATOR = MSBUILD
|
||||
QMAKE_COMPILER = msvc
|
||||
QMAKE_PLATFORM = winrt win32
|
||||
CONFIG = package_manifest $$CONFIG incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target rtti
|
||||
DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT Q_BYTE_ORDER=Q_LITTLE_ENDIAN \
|
||||
QT_NO_PRINTER QT_NO_PRINTDIALOG # TODO: Remove when printing is re-enabled
|
||||
DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT Q_BYTE_ORDER=Q_LITTLE_ENDIAN
|
||||
|
||||
DEPLOYMENT_PLUGIN += qwinrt
|
||||
|
||||
|
@ -1,4 +0,0 @@
|
||||
# This file needs to be loaded explicitly, as the evaluation is relatively
|
||||
# expensive, and not many projects will actually need it.
|
||||
QMAKE_QT_FEATURES = $$[QT_HOST_DATA/get]/mkspecs/qfeatures.pri
|
||||
include($$QMAKE_QT_FEATURES) | error("Failed to load $$QMAKE_QT_FEATURES")
|
@ -285,8 +285,20 @@ defineTest(qtConfParseCommandLine) {
|
||||
}
|
||||
# handle builtin [-no]-feature-xxx
|
||||
isEmpty(type):contains(opt, "feature-(.*)") {
|
||||
# simply skip for now
|
||||
next()
|
||||
opt ~= s,^feature-,,
|
||||
found = false
|
||||
for (cc, allConfigs) {
|
||||
contains($${cc}.features._KEYS_, $$opt) {
|
||||
found = true
|
||||
break()
|
||||
}
|
||||
}
|
||||
!$$found {
|
||||
qtConfAddError("Enabling/Disabling unknown feature '$$opt'.")
|
||||
return()
|
||||
}
|
||||
# this is a boolean enabling/disabling the corresponding feature
|
||||
type = boolean
|
||||
}
|
||||
|
||||
isEmpty(type) {
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
include(../common/ghs-integrity-armv7.conf)
|
||||
|
||||
DEFINES += QT_NO_CLIPBOARD
|
||||
DEFINES += QT_STATICPLUGIN
|
||||
|
||||
QTPLUGIN.platforms += qeglfs qeglfs-viv-integration
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
include(../common/ghs-integrity-armv7.conf)
|
||||
|
||||
DEFINES += QT_NO_CLIPBOARD
|
||||
DEFINES += QT_STATICPLUGIN
|
||||
|
||||
QTPLUGIN.platforms += integrityfb
|
||||
|
@ -5,7 +5,6 @@
|
||||
include(../common/ghs-integrity-x86.conf)
|
||||
|
||||
QMAKE_CFLAGS += -cpu=Corei
|
||||
DEFINES += QT_NO_CLIPBOARD
|
||||
DEFINES += QT_STATICPLUGIN
|
||||
|
||||
QTPLUGIN.platforms += integrityfb
|
||||
|
@ -2,7 +2,7 @@
|
||||
# qmake configuration for qnx aarch64le systems
|
||||
#
|
||||
|
||||
DEFINES += QT_NO_CLIPBOARD _FORTIFY_SOURCE=2
|
||||
DEFINES += _FORTIFY_SOURCE=2
|
||||
|
||||
QMAKE_LFLAGS_SHLIB += -Wl,-z,relro -Wl,-z,now
|
||||
|
||||
|
@ -3,5 +3,3 @@
|
||||
#
|
||||
|
||||
include(../common/qcc-base-qnx-armle-v7.conf)
|
||||
|
||||
DEFINES += QT_NO_CLIPBOARD
|
||||
|
@ -2,8 +2,6 @@
|
||||
# qmake configuration for qnx x86-64 systems
|
||||
#
|
||||
|
||||
DEFINES += QT_NO_CLIPBOARD
|
||||
|
||||
QMAKE_LFLAGS_SHLIB += -Wl,-z,relro -Wl,-z,now
|
||||
|
||||
include(../common/qcc-base-qnx-x86-64.conf)
|
||||
|
@ -3,5 +3,3 @@
|
||||
#
|
||||
|
||||
include(../common/qcc-base-qnx-x86.conf)
|
||||
|
||||
DEFINES += QT_NO_CLIPBOARD
|
||||
|
82
qtbase.pro
82
qtbase.pro
@ -75,90 +75,10 @@ prefix_build|!equals(PWD, $$OUT_PWD) {
|
||||
|
||||
}
|
||||
|
||||
# Generate qfeatures.h
|
||||
features =
|
||||
lines = $$cat("src/corelib/global/qfeatures.txt", lines)
|
||||
for (line, lines) {
|
||||
t = $$replace(line, "^Feature: (\\S+)\\s*$", "\\1")
|
||||
!isEqual(t, $$line) {
|
||||
feature = $$t
|
||||
features += $$t
|
||||
} else {
|
||||
t = $$replace(line, "^Requires: (.*)$", "\\1")
|
||||
!isEqual(t, $$line) {
|
||||
features.$${feature}.depends = $$replace(t, \\s+$, )
|
||||
} else {
|
||||
t = $$replace(line, "^Name: (.*)$", "\\1")
|
||||
!isEqual(t, $$line) {
|
||||
features.$${feature}.name = $$replace(t, \\s+$, )
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
features = $$sort_depends(features, features.)
|
||||
features = $$reverse(features)
|
||||
FEATURES_H = \
|
||||
"/*" \
|
||||
" * All feature dependencies." \
|
||||
" *" \
|
||||
" * This list is generated by qmake from <qtbase>/src/corelib/global/qfeatures.txt" \
|
||||
" */"
|
||||
FEATURES_PRI =
|
||||
for (ft, features) {
|
||||
!isEmpty(features.$${ft}.depends) {
|
||||
FEATURES_H += \
|
||||
"$${LITERAL_HASH}if !defined(QT_NO_$$ft) && ($$join($$list($$split(features.$${ft}.depends)), ") || defined(QT_NO_", "defined(QT_NO_", ")"))" \
|
||||
"$${LITERAL_HASH} define QT_NO_$$ft" \
|
||||
"$${LITERAL_HASH}endif"
|
||||
FEATURES_PRI += \
|
||||
"contains(QT_DISABLED_FEATURES, "$$lower($$join($$list($$replace(features.$${ft}.depends, _, -)), "|"))"): \\" \
|
||||
" QT_DISABLED_FEATURES += $$lower($$replace(ft, _, -))"
|
||||
}
|
||||
}
|
||||
write_file($$OUT_PWD/src/corelib/global/qfeatures.h, FEATURES_H)|error()
|
||||
# Create forwarding header
|
||||
FWD_FEATURES_H = \
|
||||
'$${LITERAL_HASH}include "../../src/corelib/global/qfeatures.h"'
|
||||
write_file($$OUT_PWD/include/QtCore/qfeatures.h, FWD_FEATURES_H)|error()
|
||||
|
||||
no_features =
|
||||
lines = $$cat($$OUT_PWD/src/corelib/global/qconfig.h, lines)
|
||||
for (line, lines) {
|
||||
# We ignore all defines that don't follow the #ifndef + indent pattern.
|
||||
# This makes it possible to have unchecked defines which are no features.
|
||||
t = $$replace(line, "^$${LITERAL_HASH} define QT_NO_(\\S+)\\s*$", "\\1")
|
||||
!isEqual(t, $$line) {
|
||||
isEmpty(features.$${t}.name): \
|
||||
error("qconfig.h disables unknown feature $$t")
|
||||
no_features += $$t
|
||||
}
|
||||
}
|
||||
for (def, QT_NO_DEFINES) {
|
||||
!isEmpty(features.$${def}.name): \
|
||||
no_features += $$def
|
||||
}
|
||||
no_features = $$unique(no_features)
|
||||
|
||||
# Don't simply add these to QT_CONFIG, as then one might expect them to be there without load(qfeatures).
|
||||
# And we don't want to do that automatically, as the dynamic dependency resolution is somewhat expensive.
|
||||
FEATURES_PRI = \
|
||||
"$${LITERAL_HASH} Features disabled by configure:" \
|
||||
"QT_DISABLED_FEATURES =$$lower($$join($$list($$replace(no_features, _, -)), " ", " "))" \
|
||||
"$$escape_expand(\\n)$${LITERAL_HASH} Dependencies derived from <qtbase>/src/corelib/global/qfeatures.txt:" \
|
||||
$$FEATURES_PRI \
|
||||
"QT_DISABLED_FEATURES = \$\$unique(QT_DISABLED_FEATURES)"
|
||||
write_file($$OUT_PWD/mkspecs/qfeatures.pri, FEATURES_PRI)|error()
|
||||
|
||||
# Files created by us
|
||||
QMAKE_DISTCLEAN += \
|
||||
src/corelib/global/qfeatures.h \
|
||||
include/QtCore/qfeatures.h \
|
||||
mkspecs/qfeatures.pri
|
||||
|
||||
#mkspecs
|
||||
mkspecs.path = $$[QT_HOST_DATA]/mkspecs
|
||||
mkspecs.files = \
|
||||
$$OUT_PWD/mkspecs/qconfig.pri $$OUT_PWD/mkspecs/qmodule.pri $$OUT_PWD/mkspecs/qfeatures.pri \
|
||||
$$OUT_PWD/mkspecs/qconfig.pri $$OUT_PWD/mkspecs/qmodule.pri \
|
||||
$$OUT_PWD/mkspecs/qdevice.pri $$OUT_PWD/mkspecs/qhost.pri \
|
||||
$$files($$PWD/mkspecs/*)
|
||||
mkspecs.files -= $$PWD/mkspecs/modules $$PWD/mkspecs/modules-inst
|
||||
|
@ -244,6 +244,8 @@
|
||||
},
|
||||
"iconv": {
|
||||
"label": "iconv",
|
||||
"purpose": "Provides internationalization on Unix.",
|
||||
"section": "Internationalization",
|
||||
"condition": "features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv",
|
||||
"output": [ "privateFeature", "feature" ]
|
||||
},
|
||||
@ -302,6 +304,8 @@
|
||||
},
|
||||
"mimetype": {
|
||||
"label": "Mimetype handling",
|
||||
"purpose": "Provides MIME type handling.",
|
||||
"section": "Utilities",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"system-pcre": {
|
||||
@ -380,6 +384,179 @@
|
||||
"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",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"systemsemaphore": {
|
||||
"label": "QSystemSemaphore",
|
||||
"purpose": "Provides a general counting system semaphore.",
|
||||
"section": "Kernel",
|
||||
"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",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"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",
|
||||
"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",
|
||||
"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" ]
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -31,8 +31,6 @@ ANDROID_PERMISSIONS = \
|
||||
# OpenBSD 6.0 will include environ in libc.
|
||||
freebsd|openbsd: QMAKE_LFLAGS_NOUNDEF =
|
||||
|
||||
load(qfeatures)
|
||||
|
||||
include(animation/animation.pri)
|
||||
include(arch/arch.pri)
|
||||
include(global/global.pri)
|
||||
@ -100,6 +98,7 @@ cmake_umbrella_config_version_file.output = $$DESTDIR/cmake/Qt5/Qt5ConfigVersion
|
||||
|
||||
load(cmake_functions)
|
||||
|
||||
##### This requires fixing, so that the feature system works with cmake as well
|
||||
CMAKE_DISABLED_FEATURES = $$join(QT_DISABLED_FEATURES, "$$escape_expand(\\n) ")
|
||||
|
||||
CMAKE_HOST_DATA_DIR = $$cmakeRelativePath($$[QT_HOST_DATA/src], $$[QT_INSTALL_PREFIX])
|
||||
|
@ -168,7 +168,7 @@ qtConfig(icu) {
|
||||
SOURCES += tools/qcollator_posix.cpp
|
||||
}
|
||||
|
||||
!contains(QT_DISABLED_FEATURES, regularexpression) {
|
||||
qtConfig(regularexpression) {
|
||||
include($$PWD/../../3rdparty/pcre_dependency.pri)
|
||||
|
||||
HEADERS += tools/qregularexpression.h
|
||||
|
@ -668,7 +668,9 @@
|
||||
},
|
||||
"sessionmanager": {
|
||||
"label": "Session Management",
|
||||
"output": [ "feature" ]
|
||||
"purpose": "Provides an interface to the windowing system's session management.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"tslib": {
|
||||
"label": "tslib",
|
||||
@ -756,6 +758,194 @@
|
||||
"label": "Xrender",
|
||||
"condition": "libs.xrender",
|
||||
"output": [ "privateFeature", "feature" ]
|
||||
},
|
||||
"texthtmlparser": {
|
||||
"label": "HtmlParser",
|
||||
"purpose": "Provides a parser for HTML.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"textodfwriter": {
|
||||
"label": "OdfWriter",
|
||||
"purpose": "Provides an ODF writer.",
|
||||
"section": "Kernel",
|
||||
"condition": "features.xmlstreamwriter",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"cssparser": {
|
||||
"label": "CssParser",
|
||||
"purpose": "Provides a parser for Cascading Style Sheets.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"draganddrop": {
|
||||
"label": "Drag and Drop",
|
||||
"purpose": "Supports the drag and drop mechansim.",
|
||||
"section": "Kernel",
|
||||
"condition": "features.imageformat_xpm",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"shortcut": {
|
||||
"label": "QShortcut",
|
||||
"purpose": "Provides keyboard accelerators and shortcuts.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"action": {
|
||||
"label": "QAction",
|
||||
"purpose": "Provides widget actions.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"cursor": {
|
||||
"label": "QCursor",
|
||||
"purpose": "Provides mouse cursors.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"clipboard": {
|
||||
"label": "QClipboard",
|
||||
"purpose": "Provides cut and paste operations.",
|
||||
"section": "Kernel",
|
||||
"condition": "!config.integrity && !config.qnx",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"wheelevent": {
|
||||
"label": "QWheelEvent",
|
||||
"purpose": "Supports wheel events.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"tabletevent": {
|
||||
"label": "QTabletEvent",
|
||||
"purpose": "Supports tablet events.",
|
||||
"section": "Kernel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"im": {
|
||||
"label": "QInputContext",
|
||||
"purpose": "Provides complex input methods.",
|
||||
"section": "Kernel",
|
||||
"condition": "features.library",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"validator": {
|
||||
"label": "QValidator",
|
||||
"purpose": "Supports validation of input text.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"standarditemmodel": {
|
||||
"label": "QStandardItemModel",
|
||||
"purpose": "Provides a generic model for storing custom data.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.itemmodel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"imageformatplugin": {
|
||||
"label": "QImageIOPlugin",
|
||||
"purpose": "Provides a base for writing a image format plugins.",
|
||||
"section": "Images",
|
||||
"condition": "features.library",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"movie": {
|
||||
"label": "QMovie",
|
||||
"purpose": "Supports animated images.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"imageformat_bmp": {
|
||||
"label": "BMP Image Format",
|
||||
"purpose": "Supports Microsoft's Bitmap image file format.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"imageformat_ppm": {
|
||||
"label": "PPM Image Format",
|
||||
"purpose": "Supports the Portable Pixmap image file format.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"imageformat_xbm": {
|
||||
"label": "XBM Image Format",
|
||||
"purpose": "Supports the X11 Bitmap image file format.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"imageformat_xpm": {
|
||||
"label": "XPM Image Format",
|
||||
"purpose": "Supports the X11 Pixmap image file format.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"imageformat_png": {
|
||||
"label": "PNG Image Format",
|
||||
"purpose": "Supports the Portable Network Graphics image file format.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"imageformat_jpeg": {
|
||||
"label": "JPEG Image Format",
|
||||
"purpose": "Supports the Joint Photographic Experts Group image file format.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"image_heuristic_mask": {
|
||||
"label": "QImage::createHeuristicMask()",
|
||||
"purpose": "Supports creating a 1-bpp heuristic mask for images.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"image_text": {
|
||||
"label": "Image Text",
|
||||
"purpose": "Supports image file text strings.",
|
||||
"section": "Images",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"picture": {
|
||||
"label": "QPicture",
|
||||
"purpose": "Supports recording and replaying QPainter commands.",
|
||||
"section": "Painting",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"colornames": {
|
||||
"label": "Color Names",
|
||||
"purpose": "Supports color names such as \"red\", used by QColor and by some HTML documents.",
|
||||
"section": "Painting",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"pdf": {
|
||||
"label": "QPdf",
|
||||
"purpose": "Provides a PDF backend for QPainter.",
|
||||
"section": "Painting",
|
||||
"condition": "features.temporaryfile",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"freetype": {
|
||||
"label": "Freetype Font Engine",
|
||||
"purpose": "Supports the FreeType 2 font engine (and its supported font formats).",
|
||||
"section": "Fonts",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"desktopservices": {
|
||||
"label": "QDesktopServices",
|
||||
"purpose": "Provides methods for accessing common desktop services.",
|
||||
"section": "Utilities",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"systemtrayicon": {
|
||||
"label": "QSystemTrayIcon",
|
||||
"purpose": "Provides an icon for an application in the system tray.",
|
||||
"section": "Utilities",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"accessibility": {
|
||||
"label": "Accessibility",
|
||||
"purpose": "Provides accessibility support.",
|
||||
"section": "Utilities",
|
||||
"condition": "features.properties",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -176,6 +176,64 @@
|
||||
"system-proxies": {
|
||||
"label": "Use system proxies",
|
||||
"output": [ "privateFeature" ]
|
||||
},
|
||||
"ftp": {
|
||||
"label": "FTP",
|
||||
"purpose": "Provides support for the File Transfer Protocol in QNetworkAccessManager.",
|
||||
"section": "Networking",
|
||||
"condition": "features.textdate",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"http": {
|
||||
"label": "HTTP",
|
||||
"purpose": "Provides support for the Hypertext Transfer Protocol in QNetworkAccessManager.",
|
||||
"section": "Networking",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"udpsocket": {
|
||||
"label": "QUdpSocket",
|
||||
"purpose": "Provides access to UDP sockets.",
|
||||
"section": "Networking",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"networkproxy": {
|
||||
"label": "QNetworkProxy",
|
||||
"purpose": "Provides network proxy support.",
|
||||
"section": "Networking",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"socks5": {
|
||||
"label": "SOCKS5",
|
||||
"purpose": "Provides SOCKS5 support in QNetworkProxy.",
|
||||
"section": "Networking",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"networkinterface": {
|
||||
"label": "QNetworkInterface",
|
||||
"purpose": "Supports enumerating a host's IP addresses and network interfaces.",
|
||||
"section": "Networking",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"networkdiskcache": {
|
||||
"label": "QNetworkDiskCache",
|
||||
"purpose": "Provides a disk cache for network resources.",
|
||||
"section": "Networking",
|
||||
"condition": "features.temporaryfile",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"bearermanagement": {
|
||||
"label": "Bearer management",
|
||||
"purpose": "Provides bearer management for the network stack.",
|
||||
"section": "Networking",
|
||||
"condition": "features.library && features.networkinterface && features.properties",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"localserver": {
|
||||
"label": "QLocalServer",
|
||||
"purpose": "Provides a local socket based server.",
|
||||
"section": "Networking",
|
||||
"condition": "features.temporaryfile",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
TEMPLATE = subdirs
|
||||
QT_FOR_CONFIG += gui-private
|
||||
|
||||
load(qfeatures)
|
||||
QT_FOR_CONFIG += gui-private network-private
|
||||
|
||||
qtConfig(evdev) {
|
||||
SUBDIRS += evdevmouse evdevtouch evdevkeyboard evdevtablet
|
||||
@ -11,7 +9,7 @@ qtConfig(tslib) {
|
||||
SUBDIRS += tslib
|
||||
}
|
||||
|
||||
!contains(QT_DISABLED_FEATURES, udpsocket) {
|
||||
qtConfig(udpsocket) {
|
||||
SUBDIRS += tuiotouch
|
||||
}
|
||||
|
||||
|
@ -1,14 +1,13 @@
|
||||
TEMPLATE = subdirs
|
||||
QT_FOR_CONFIG += network
|
||||
|
||||
load(qfeatures)
|
||||
SUBDIRS *= sqldrivers
|
||||
qtHaveModule(network):!contains(QT_DISABLED_FEATURES, bearermanagement): SUBDIRS += bearer
|
||||
qtHaveModule(network):qtConfig(bearermanagement): SUBDIRS += bearer
|
||||
qtHaveModule(gui) {
|
||||
SUBDIRS *= platforms platforminputcontexts platformthemes
|
||||
!contains(QT_DISABLED_FEATURES, imageformatplugin): SUBDIRS *= imageformats
|
||||
!android:!contains(QT_DISABLED_FEATURES, library): SUBDIRS *= generic
|
||||
qtConfig(imageformatplugin): SUBDIRS *= imageformats
|
||||
!android:qtConfig(library): SUBDIRS *= generic
|
||||
}
|
||||
|
||||
!winrt:!wince*:qtHaveModule(widgets):!contains(QT_DISABLED_FEATURES, printer) {
|
||||
!winrt:!wince:qtHaveModule(printsupport): \
|
||||
SUBDIRS += printsupport
|
||||
}
|
||||
|
@ -26,8 +26,38 @@
|
||||
"features": {
|
||||
"cups": {
|
||||
"label": "CUPS",
|
||||
"purpose": "Provides support for the Common Unix Printing System.",
|
||||
"section": "Painting",
|
||||
"condition": "libs.cups",
|
||||
"output": [ "privateFeature", "feature" ]
|
||||
},
|
||||
"printer": {
|
||||
"label": "QPrinter",
|
||||
"purpose": "Provides a printer backend of QPainter.",
|
||||
"section": "Painting",
|
||||
"condition": "!config.android && !config.uikit && !config.winrt && features.picture && features.temporaryfile && features.pdf",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"printpreviewwidget": {
|
||||
"label": "QPrintPreviewWidget",
|
||||
"purpose": "Provides a widget for previewing page layouts for printer output.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.graphicsview && features.printer && features.mainwindow",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"printdialog": {
|
||||
"label": "QPrintDialog",
|
||||
"purpose": "Provides a dialog widget for specifying printer configuration.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.printer && features.combobox && features.buttongroup && features.spinbox && features.treeview && features.tabwidget",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"printpreviewdialog": {
|
||||
"label": "QPrintPreviewDialog",
|
||||
"purpose": "Provides a dialog for previewing and configuring page layouts for printer output.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.printpreviewwidget && features.printdialog && features.toolbar",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -134,7 +134,7 @@ src_android.subdir = $$PWD/android
|
||||
}
|
||||
}
|
||||
SUBDIRS += src_tools_bootstrap src_tools_moc src_tools_rcc
|
||||
!contains(QT_DISABLED_FEATURES, regularexpression):pcre {
|
||||
qtConfig(regularexpression):pcre {
|
||||
SUBDIRS += src_3rdparty_pcre
|
||||
src_corelib.depends += src_3rdparty_pcre
|
||||
}
|
||||
|
@ -71,10 +71,480 @@
|
||||
"autoDetect": "config.android",
|
||||
"output": [ "styles" ]
|
||||
},
|
||||
"style-stylesheet": {
|
||||
"label": "QStyleSheetStyle",
|
||||
"purpose": "Provides a widget style which is configurable via CSS.",
|
||||
"section": "Styles",
|
||||
"condition": "features.style-windows && features.properties && features.cssparser",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"android-style-assets": {
|
||||
"label": "Android Style Assets",
|
||||
"condition": "features.style-android",
|
||||
"output": [ "privateConfig" ]
|
||||
},
|
||||
"effects": {
|
||||
"label": "Effects",
|
||||
"purpose": "Provides special widget effects (e.g. fading and scrolling).",
|
||||
"section": "Kernel"
|
||||
},
|
||||
"filesystemmodel": {
|
||||
"label": "QFileSystemModel",
|
||||
"purpose": "Provides a data model for the local filesystem.",
|
||||
"section": "File I/O",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"itemviews": {
|
||||
"label": "The Model/View Framework",
|
||||
"purpose": "Provides the model/view architecture managing the relationship between data and the way it is presented to the user.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.itemmodel && features.rubberband && features.scrollarea",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"treewidget": {
|
||||
"label": "QTreeWidget",
|
||||
"purpose": "Provides views using tree models.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.treeview",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"listwidget": {
|
||||
"label": "QListWidget",
|
||||
"purpose": "Provides item-based list widgets.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.listview",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"tablewidget": {
|
||||
"label": "QTableWidget",
|
||||
"purpose": "Provides item-based table views.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.tableview",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"datetimeedit": {
|
||||
"label": "QDateTimeEdit",
|
||||
"purpose": "Supports editing dates and times.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.calendarwidget && features.datestring",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"stackedwidget": {
|
||||
"label": "QStackedWidget",
|
||||
"purpose": "Provides stacked widgets.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"textbrowser": {
|
||||
"label": "QTextBrowser",
|
||||
"purpose": "Supports HTML document browsing.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.textedit",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"splashscreen": {
|
||||
"label": "QSplashScreen",
|
||||
"purpose": "Supports splash screens that can be shown during application startup.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"splitter": {
|
||||
"label": "QSplitter",
|
||||
"purpose": "Provides user controlled splitter widgets.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.rubberband",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"lcdnumber": {
|
||||
"label": "QLCDNumber",
|
||||
"purpose": "Provides LCD-like digits.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"menu": {
|
||||
"label": "QMenu",
|
||||
"purpose": "Provides popup-menus.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.action",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"lineedit": {
|
||||
"label": "QLineEdit",
|
||||
"purpose": "Provides single-line edits.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"spinbox": {
|
||||
"label": "QSpinBox",
|
||||
"purpose": "Provides spin boxes handling integers and discrete sets of values.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.spinwidget && features.lineedit && features.validator",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"tabbar": {
|
||||
"label": "QTabBar",
|
||||
"purpose": "Provides tab bars, e.g., for use in tabbed dialogs.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.toolbutton",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"tabwidget": {
|
||||
"label": "QTabWidget",
|
||||
"purpose": "Supports stacking tabbed widgets.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.tabbar && features.stackedwidget",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"combobox": {
|
||||
"label": "QComboBox",
|
||||
"purpose": "Provides drop-down boxes presenting a list of options to the user.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.lineedit && features.standarditemmodel && features.listview",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"fontcombobox": {
|
||||
"label": "QFontComboBox",
|
||||
"purpose": "Provides a combobox that lets the user select a font family.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.combobox && features.stringlistmodel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"toolbutton": {
|
||||
"label": "QToolButton",
|
||||
"purpose": "Provides quick-access buttons to commands and options.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.action",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"toolbar": {
|
||||
"label": "QToolBar",
|
||||
"purpose": "Provides movable panels containing a set of controls.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.mainwindow",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"toolbox": {
|
||||
"label": "QToolBox",
|
||||
"purpose": "Provides columns of tabbed widget items.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.toolbutton && features.scrollarea",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"groupbox": {
|
||||
"label": "QGroupBox",
|
||||
"purpose": "Provides widget grouping boxes with frames.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"buttongroup": {
|
||||
"label": "QButtonGroup",
|
||||
"purpose": "Supports organizing groups of button widgets.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.groupbox",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"mainwindow": {
|
||||
"label": "QMainWindow",
|
||||
"purpose": "Provides main application windows.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.menu && features.resizehandler && features.toolbutton",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"dockwidget": {
|
||||
"label": "QDockwidget",
|
||||
"purpose": "Supports docking widgets inside a QMainWindow or floated as a top-level window on the desktop.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.rubberband && features.mainwindow",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"mdiarea": {
|
||||
"label": "QMdiArea",
|
||||
"purpose": "Provides an area in which MDI windows are displayed.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.scrollarea",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"resizehandler": {
|
||||
"label": "QWidgetResizeHandler",
|
||||
"purpose": "Provides an internal resize handler for dock widgets.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"statusbar": {
|
||||
"label": "QStatusBar",
|
||||
"purpose": "Supports presentation of status information.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"menubar": {
|
||||
"label": "QMenuBar",
|
||||
"purpose": "Provides pull-down menu items.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.menu && features.toolbutton",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"contextmenu": {
|
||||
"label": "Context menus",
|
||||
"purpose": "Adds pop-up menus on right mouse click to numerous widgets.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.menu",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"progressbar": {
|
||||
"label": "QProgressBar",
|
||||
"purpose": "Supports presentation of operation progress.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"slider": {
|
||||
"label": "QSlider",
|
||||
"purpose": "Provides sliders controlling a bounded value.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"scrollbar": {
|
||||
"label": "QScrollBar",
|
||||
"purpose": "Provides scrollbars allowing the user access parts of a document that is larger than the widget used to display it.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.slider",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"dial": {
|
||||
"label": "QDial",
|
||||
"purpose": "Provides a rounded range control, e.g., like a speedometer.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.slider",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"scrollarea": {
|
||||
"label": "QScrollArea",
|
||||
"purpose": "Supports scrolling views onto widgets.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.scrollbar",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"graphicsview": {
|
||||
"label": "QGraphicsView",
|
||||
"purpose": "Provides a canvas/sprite framework.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.scrollarea",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"graphicseffect": {
|
||||
"label": "QGraphicsEffect",
|
||||
"purpose": "Provides various graphics effects.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.graphicsview",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"spinbox": {
|
||||
"label": "QSpinBox",
|
||||
"purpose": "Provides spinbox control widgets.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"textedit": {
|
||||
"label": "QTextEdit",
|
||||
"purpose": "Supports rich text editing.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.scrollarea && features.properties",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"syntaxhighlighter": {
|
||||
"label": "QSyntaxHighlighter",
|
||||
"purpose": "Supports custom syntax highlighting.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.textedit",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"rubberband": {
|
||||
"label": "QRubberBand",
|
||||
"purpose": "Supports using rubberbands to indicate selections and boundaries.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"tooltip": {
|
||||
"label": "QToolTip",
|
||||
"purpose": "Supports presentation of tooltips.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"statustip": {
|
||||
"label": "Status Tip",
|
||||
"purpose": "Supports status tip functionality and events.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"whatsthis": {
|
||||
"label": "QWhatsThis",
|
||||
"purpose": "Supports displaying \"What's this\" help.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.toolbutton",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"sizegrip": {
|
||||
"label": "QSizeGrip",
|
||||
"purpose": "Provides corner-grips for resizing top-level windows.",
|
||||
"section": "Widgets",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"calendarwidget": {
|
||||
"label": "QCalendarWidget",
|
||||
"purpose": "Provides a monthly based calendar widget allowing the user to select a date.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.tableview && features.menu && features.textdate && features.spinbox && features.toolbutton",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"keysequenceedit": {
|
||||
"label": "QKeySequenceEdit",
|
||||
"purpose": "Provides a widget for editing QKeySequences.",
|
||||
"section": "Widgets",
|
||||
"condition": "features.lineedit && features.shortcut",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"messagebox": {
|
||||
"label": "QMessageBox",
|
||||
"purpose": "Provides message boxes displaying informative messages and simple questions.",
|
||||
"section": "Dialogs",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"colordialog": {
|
||||
"label": "QColorDialog",
|
||||
"purpose": "Provides a dialog widget for specifying colors.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.spinbox",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"filedialog": {
|
||||
"label": "QFileDialog",
|
||||
"purpose": "Provides a dialog widget for selecting files or directories.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.dirmodel && features.treeview && features.combobox && features.toolbutton && features.buttongroup && features.tooltip && features.splitter && features.stackedwidget && features.proxymodel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"fontdialog": {
|
||||
"label": "QFontDialog",
|
||||
"purpose": "Provides a dialog widget for selecting fonts.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.stringlistmodel && features.combobox && features.validator && features.groupbox",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"progressdialog": {
|
||||
"label": "QProgressDialog",
|
||||
"purpose": "Provides feedback on the progress of a slow operation.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.progressbar",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"inputdialog": {
|
||||
"label": "QInputDialog",
|
||||
"purpose": "Provides a simple convenience dialog to get a single value from the user.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.combobox && features.spinbox && features.stackedwidget",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"errormessage": {
|
||||
"label": "QErrorMessage",
|
||||
"purpose": "Provides an error message display dialog.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.textedit",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"wizard": {
|
||||
"label": "QWizard",
|
||||
"purpose": "Provides a framework for multi-page click-through dialogs.",
|
||||
"section": "Dialogs",
|
||||
"condition": "features.properties",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"dirmodel": {
|
||||
"label": "QDirModel",
|
||||
"purpose": "Provides a data model for the local filesystem.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.itemviews && features.filesystemmodel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"listview": {
|
||||
"label": "QListView",
|
||||
"purpose": "Provides a list or icon view onto a model.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.itemviews",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"tableview": {
|
||||
"label": "QTableView",
|
||||
"purpose": "Provides a default model/view implementation of a table view.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.itemviews",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"treeview": {
|
||||
"label": "QTreeView",
|
||||
"purpose": "Provides a default model/view implementation of a tree view.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.itemviews",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"datawidgetmapper": {
|
||||
"label": "QDataWidgetMapper",
|
||||
"purpose": "Provides mapping between a section of a data model to widgets.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.itemviews && features.properties",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"columnview": {
|
||||
"label": "QColumnView",
|
||||
"purpose": "Provides a model/view implementation of a column view.",
|
||||
"section": "ItemViews",
|
||||
"condition": "features.listview",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"paint_debug": {
|
||||
"label": "Painting Debug Utilities",
|
||||
"purpose": "Enabled debugging painting with the environment variables QT_FLUSH_UPDATE and QT_FLUSH_PAINT.",
|
||||
"section": "Painting",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"completer": {
|
||||
"label": "QCompleter",
|
||||
"purpose": "Provides completions based on an item model.",
|
||||
"section": "Utilities",
|
||||
"condition": "features.proxymodel",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"fscompleter": {
|
||||
"label": "QFSCompleter",
|
||||
"purpose": "Provides file name completion in QFileDialog.",
|
||||
"section": "Utilities",
|
||||
"condition": "features.filesystemmodel && features.completer",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"undocommand": {
|
||||
"label": "QUndoCommand",
|
||||
"purpose": "Applies (redo or) undo of a single change in a document.",
|
||||
"section": "Utilities",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"undostack": {
|
||||
"label": "QUndoStack",
|
||||
"purpose": "Provides the ability to (redo or) undo a list of changes in a document.",
|
||||
"section": "Utilities",
|
||||
"condition": "features.undocommand",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"undogroup": {
|
||||
"label": "QUndoGroup",
|
||||
"purpose": "Provides the ability to cluster QUndoCommands.",
|
||||
"section": "Utilities",
|
||||
"condition": "features.undostack",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
},
|
||||
"undoview": {
|
||||
"label": "QUndoView",
|
||||
"purpose": "Provides a widget which shows the contents of an undo stack.",
|
||||
"section": "Utilities",
|
||||
"condition": "features.undostack && features.listview",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
}
|
||||
},
|
||||
|
||||
|
16
src/xml/configure.json
Normal file
16
src/xml/configure.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"module": "xml",
|
||||
"depends": [
|
||||
"core"
|
||||
],
|
||||
"testDir": "../../config.tests",
|
||||
|
||||
"features": {
|
||||
"dom": {
|
||||
"label": "DOM",
|
||||
"purpose": "Supports the Document Object Model.",
|
||||
"section": "File I/O",
|
||||
"output": [ "publicFeature", "feature" ]
|
||||
}
|
||||
}
|
||||
}
|
@ -41,6 +41,9 @@
|
||||
#define QTXMLGLOBAL_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
# include <QtXml/qtxml-config.h>
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
@ -65,7 +65,7 @@ my @zlib_headers = ( "zconf.h", "zlib.h" );
|
||||
@ignore_headers = ( @internal_zlib_headers );
|
||||
@ignore_for_include_check = ( "qsystemdetection.h", "qcompilerdetection.h", "qprocessordetection.h", @zlib_headers, @angle_headers);
|
||||
@ignore_for_qt_begin_namespace_check = ( "qt_windows.h", @zlib_headers, @angle_headers);
|
||||
%inject_headers = ( "$basedir/src/corelib/global" => [ "qconfig.h", "qconfig_p.h", "qfeatures.h" ] );
|
||||
%inject_headers = ( "$basedir/src/corelib/global" => [ "qconfig.h", "qconfig_p.h" ] );
|
||||
# Module dependencies.
|
||||
# Every module that is required to build this module should have one entry.
|
||||
# Each of the module version specifiers can take one of the following values:
|
||||
|
@ -3,8 +3,7 @@ SUBDIRS=\
|
||||
qfactoryloader \
|
||||
quuid
|
||||
|
||||
load(qfeatures)
|
||||
!contains(QT_DISABLED_FEATURES, library): SUBDIRS += \
|
||||
qtConfig(library): SUBDIRS += \
|
||||
qpluginloader \
|
||||
qplugin \
|
||||
qlibrary
|
||||
|
@ -19,7 +19,6 @@ win32 {
|
||||
|
||||
mac: CONFIG -= app_bundle
|
||||
|
||||
load(qfeatures)
|
||||
contains(QT_DISABLED_FEATURES, library) {
|
||||
!qtConfig(library) {
|
||||
LIBS += -L ../bin/ -lplugin1 -lplugin2
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user