Go to file
Lars Knoll 606924132f Add support for safe feature checking at compile time
Added a qtConfig(feature) function to qmake, and a QT_CONFIG(feature)
macro. These can safely check whether a certain compile time feature of
Qt is enabled or not.

For this to work the feature has to have a publicFeature or
privateFeature output in the configure.json file.

In pro files, please use the qtConfig(feature) test function
instead of checking contains(QT_CONFIG, feature), as the latter
will be unreliable with the upcoming modularization (it requires a
load(qt_module_config) before doing any such checks). Note that
feature names are now lowercase, and identical (except for hyphens
versus underscores currently) in the pro and c++ files.

This makes the logic easier to follow, as we avoid all double negations,
and most importantly, QT_CONFIG and qtConfig are implemented in a
way that you'll get a build error for a mistyped or non-existent
feature. This will also prevent accidental use of a widget feature
in gui in the future.

This gives us complete symmetry between the handling in pro and
c++ files.

Change-Id: I60404f97953724e639ffb6386cce2e8b1e4b735a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:27:17 +00:00
bin automatically exclude generated headers from syncqt checks 2016-08-18 17:11:06 +00:00
config.tests rewrite makespec verification with qmake based system 2016-08-18 17:10:52 +00:00
dist Add Qt 5.7.0 changelog 2016-06-10 06:48:56 +00:00
doc Merge remote-tracking branch 'origin/5.7' into dev 2016-08-16 07:58:32 +02:00
examples Don't build the complexpingpong example on UIKit platforms 2016-08-16 21:22:10 +00:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
mkspecs Add support for safe feature checking at compile time 2016-08-19 04:27:17 +00:00
qmake Merge remote-tracking branch 'origin/5.7' into dev 2016-08-16 07:58:32 +02:00
src Add support for safe feature checking at compile time 2016-08-19 04:27:17 +00:00
tests employ QMAKE_USE: LIBS += $$QMAKE_LIBS_FOO 2016-08-19 04:26:36 +00:00
tools Use the qmake based configuration system also on Windows 2016-08-18 17:10:47 +00:00
util Handle indirect sibling selector 2016-07-27 20:18:02 +00:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore rename the -redo status file to config.opt 2016-08-12 22:03:05 +00:00
.qmake.conf Bump version 2016-07-28 13:50:04 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
config_help.txt Make the ICO image format a configurable feature 2016-08-18 17:10:57 +00:00
configure rewrite makespec verification with qmake based system 2016-08-18 17:10:52 +00:00
configure.bat make the windows configure also use config_help.txt 2016-08-18 17:10:39 +00:00
configure.json Improve library version handling 2016-08-19 04:27:06 +00:00
configure.pri Don't disable examples on iOS and tvOS 2016-08-18 22:31:10 +00:00
header.BSD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.BSD-OLD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.COMM Add header template for commercial only modules 2015-10-19 10:37:18 +00:00
header.FDL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.FDL-OLD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.GPL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.GPL-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.LGPL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.LGPL3 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL3-COMM Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL21 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL-NOGPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.LGPL-ONLY Update copyright headers 2015-02-11 06:49:51 +00:00
INSTALL Doc: Update links in INSTALL file 2015-02-16 09:06:41 +00:00
LGPL_EXCEPTION.txt Update copyright headers 2015-02-11 06:49:51 +00:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPLv3 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPLv3 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.LGPLv21 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.PREVIEW.COMMERCIAL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
qtbase.pro Improve library version handling 2016-08-19 04:27:06 +00:00
sync.profile Improve library version handling 2016-08-19 04:27:06 +00:00