make bootstrapped build work entirely without generated headers

instead, the only relevant defines from qconfig.h (QT_VERSION*) are
passed on the command line, like we already did for qmake and
configure.exe.
this enables us to remove the early forwarding header generation from
qtbase.pro, and rely wholly on the regular mechanism from syncqt +
qt_module_headers.prf.
another advantage is that we can be sure that the bootstrapped namespace
is not polluted by the target feature configuration.

Change-Id: If29285cfc697ae56b591e2ff1a2114686d18fb30
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Oswald Buddenhagen 2016-08-16 18:18:13 +02:00 committed by Lars Knoll
parent ce942a2265
commit de1da50557
5 changed files with 12 additions and 14 deletions

View File

@ -148,21 +148,11 @@ FEATURES_PRI = \
"QT_DISABLED_FEATURES = \$\$unique(QT_DISABLED_FEATURES)"
write_file($$OUT_PWD/mkspecs/qfeatures.pri, FEATURES_PRI)|error()
# Create forwarding headers for qconfig.h
FWD_QCONFIG_H = \
'$${LITERAL_HASH}include "../../src/corelib/global/qconfig.h"'
write_file($$OUT_PWD/include/QtCore/qconfig.h, FWD_QCONFIG_H)|error()
FWD_QTCONFIG = \
'$${LITERAL_HASH}include "qconfig.h"'
write_file($$OUT_PWD/include/QtCore/QtConfig, FWD_QTCONFIG)|error()
# Files created by us
QMAKE_DISTCLEAN += \
src/corelib/global/qfeatures.h \
include/QtCore/qfeatures.h \
mkspecs/qfeatures.pri \
include/QtCore/qconfig.h \
include/QtCore/QtConfig
mkspecs/qfeatures.pri
#mkspecs
mkspecs.path = $$[QT_HOST_DATA]/mkspecs

View File

@ -21,7 +21,9 @@
# endif
#endif
#include "qconfig.h"
#ifndef QT_BOOTSTRAPPED
# include <qconfig.h>
#endif
#if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33) && !defined(NO_VIZ) && defined(QT_VISIBILITY_AVAILABLE)
# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
#else

View File

@ -13,7 +13,9 @@
#ifndef ZUTIL_H
#define ZUTIL_H
#include "qconfig.h"
#ifndef QT_BOOTSTRAPPED
# include <qconfig.h>
#endif
#if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33) && !defined(NO_VIZ) && defined(QT_VISIBILITY_AVAILABLE)
# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
#else

View File

@ -56,7 +56,7 @@
*/
#define QT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
#if !defined(QT_BUILD_QMAKE) && !defined(QT_BUILD_CONFIGURE)
#ifndef QT_BOOTSTRAPPED
#include <QtCore/qconfig.h>
#include <QtCore/qfeatures.h>
#endif

View File

@ -6,6 +6,10 @@ CONFIG += minimal_syncqt internal_module force_bootstrap
MODULE_INCNAME = QtCore QtXml
MODULE_DEFINES = \
QT_VERSION_STR=$$shell_quote(\"$$QT_VERSION\") \
QT_VERSION_MAJOR=$$QT_MAJOR_VERSION \
QT_VERSION_MINOR=$$QT_MINOR_VERSION \
QT_VERSION_PATCH=$$QT_PATCH_VERSION \
QT_BOOTSTRAPPED \
QT_LITE_UNICODE \
QT_NO_CAST_TO_ASCII \