Fix compilation without sharedmemory

We have to enable qt_safe_ftok with either sharedmemory or
systemsemaphore. In order to make the resulting QT_CONFIG work with the
bootstrap library we switch the features off for bootstrapping. Some
tests and examples have to be excluded when sharedmemory is not
available.

Change-Id: I3fc3926d160202b378be2293fba40201a4bf50c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Ulf Hermann 2016-11-30 16:37:15 +01:00
parent b49660bba4
commit 2ed9a52ebf
4 changed files with 10 additions and 7 deletions

View File

@ -1,6 +1,6 @@
requires(qtHaveModule(widgets))
TEMPLATE = subdirs
# no QSharedMemory
!vxworks:!integrity: SUBDIRS = sharedmemory
qtConfig(sharedmemory): SUBDIRS = sharedmemory
qtHaveModule(network): SUBDIRS += localfortuneserver localfortuneclient

View File

@ -83,6 +83,8 @@
#define QT_NO_TRANSLATION
#define QT_FEATURE_translation -1
#define QT_NO_GEOM_VARIANT
#define QT_FEATURE_sharedmemory -1
#define QT_FEATURE_systemsemaphore -1
#ifdef QT_BUILD_QMAKE
#define QT_FEATURE_commandlineparser -1

View File

@ -370,7 +370,7 @@ union qt_semun {
};
#ifndef QT_POSIX_IPC
#ifndef QT_NO_SHAREDMEMORY
#if QT_CONFIG(sharedmemory) || QT_CONFIG(systemsemaphore)
#ifndef Q_OS_ANDROID
static inline key_t qt_safe_ftok(const QByteArray &filename, int proj_id)
{
@ -379,7 +379,7 @@ static inline key_t qt_safe_ftok(const QByteArray &filename, int proj_id)
return ::ftok(filename.constData(), qHash(filename, proj_id));
}
#endif // !Q_OS_ANDROID
#endif // !QT_NO_SHAREDMEMORY
#endif // QT_CONFIG(sharedmemory) || QT_CONFIG(systemsemaphore)
#endif // !QT_POSIX_IPC
QT_END_NAMESPACE

View File

@ -1,5 +1,6 @@
TEMPLATE = subdirs
!winrt: SUBDIRS = sharedmemoryhelper
SUBDIRS += test
qtConfig(sharedmemory) {
!winrt: SUBDIRS = sharedmemoryhelper
SUBDIRS += test
}