From f92fc0cdbf8ec0f760c45925e3300c6c9091f1ad Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Mon, 19 Sep 2011 10:52:32 +0200 Subject: Fix compile issue when building with QT_NO_CONCURRENT and QT_NO_FUTURE This solves a build issue on Solaris as the symbols were missing so they are now added in the expected way after discussion with the Nokia developer who approved the patch originally for winscw. Task-number: QTBUG-21523 Merge-request: 1389 Reviewed-by: ossi --- src/corelib/concurrent/qfuturewatcher.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/corelib/concurrent/qfuturewatcher.cpp b/src/corelib/concurrent/qfuturewatcher.cpp index 0bef4a6..a70f56b 100644 --- a/src/corelib/concurrent/qfuturewatcher.cpp +++ b/src/corelib/concurrent/qfuturewatcher.cpp @@ -600,5 +600,8 @@ void QFutureWatcherBase::setPaused(bool) { } void QFutureWatcherBase::pause() { } void QFutureWatcherBase::resume() { } void QFutureWatcherBase::togglePaused() { } +bool QFutureWatcherBase::event(QEvent *) { return false; } +void QFutureWatcherBase::connectNotify(const char *) { } +void QFutureWatcherBase::disconnectNotify(const char *) { } #endif // QT_NO_QFUTURE -- cgit v0.12 From 8fe04a14b1f3688c9ce0933ebec0c28616595d93 Mon Sep 17 00:00:00 2001 From: Rolland Dudemaine Date: Mon, 19 Sep 2011 17:03:22 +0200 Subject: Resolve a number of compilation issues with INTEGRITY First, #ifdef'ed out getpwuid_r() and getpwgid_r() usage since users/groups support is not in in single-process Posix mode. Also, correct a typo and add missing files to io.pri. Update documentation to disable libtiff which won't compile until ibtiff itself is updated, and add back -no-exceptions in the sample command line. And add a line to compile host tools. Add a dummy QT_OPEN_LARGEFILE definition in qplatformdefs.h since there is code that requires it. Move definition of getGlyph() after the definition of qHash(GlyphAndSubPixelPosition). Merge-request: 2686 Reviewed-by: ossi --- doc/src/platforms/platform-notes-rtos.qdoc | 11 +++++++++-- mkspecs/unsupported/integrity-ghs/qplatformdefs.h | 1 + src/corelib/io/io.pri | 4 +++- src/corelib/io/qfilesystemengine_unix.cpp | 4 ++++ src/gui/text/qfontengine_ft_p.h | 15 +++++++++------ 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/doc/src/platforms/platform-notes-rtos.qdoc b/doc/src/platforms/platform-notes-rtos.qdoc index 0b1265b..dd72016 100644 --- a/doc/src/platforms/platform-notes-rtos.qdoc +++ b/doc/src/platforms/platform-notes-rtos.qdoc @@ -313,7 +313,7 @@ ARM INTEGRITY target: \code - ./configure --hostprefix=$PWD -embedded integrity -xplatform unsupported/qws/integrity-arm-cxarm -static -qt-kbd-integrity -qt-mouse-integrity -no-mouse-linuxtp -no-mouse-pc -no-kbd-tty -qt-gfx-integrityfb -no-qt3support -no-gfx-linuxfb -no-glib -no-openssl -no-largefile -little-endian -arch integrity -prefix / -opensource -no-feature-QWS_MULTIPROCESS -no-feature-SHAREDMEMORY -no-feature-PROCESS -no-feature-SYSTEMSEMAPHORE -no-feature-PRINTER -no-feature-QWS_QPF2 -no-scripttools + ./configure --hostprefix=$PWD -embedded integrity -xplatform unsupported/qws/integrity-arm-cxarm -static -qt-kbd-integrity -qt-mouse-integrity -no-mouse-linuxtp -no-mouse-pc -no-kbd-tty -qt-gfx-integrityfb -no-qt3support -no-gfx-linuxfb -no-glib -no-openssl -no-largefile -little-endian -arch integrity -prefix / -opensource -no-feature-QWS_MULTIPROCESS -no-feature-SHAREDMEMORY -no-feature-PROCESS -no-feature-SYSTEMSEMAPHORE -no-feature-PRINTER -no-feature-QWS_QPF2 -no-libtiff -no-exceptions -no-scripttools \endcode \list @@ -326,6 +326,7 @@ \o \c{-no-qt3support} - required since the Qt3 support classes are not supported on INTEGRITY \o \c{-no-exceptions} - reduces the size of the library by disabling exception support \o \c{-no-openssl} - disable support for OpenSSL + \o \c(-no-libtiff} - disable support for libTIFF \o \c{-no-glib} - disable support for unavailable Glib \o \c{-no-largefile} - disable support for large (> 2TB) files \o \c{-no-scripttools} - disable support for QtScript tools @@ -346,7 +347,13 @@ of INTEGRITY_DIR and INTEGRITY_BSP in unsupported/qws/integrity-arm-cxarm/qmake.conf. If you do not do this, you will have to modify the resulting generated projects.gpj - \o GIF support is currently not enabled. + \o Compilation of native preprocessing tools (moc, rcc, uic) is not automatic. From + a Linux shell or a MingWin shell, you can run the following command to compile these tools : + \code + cd src/tools/bootstrap && make && cd ../rcc && make && cd ../moc && make && cd ../uic && make && cd ../../.. + \endcode + + \o GIF and TIFF support are currently not enabled. \o Default .int files are generated. You may want to modify the amount of heap assigned to each example by modifying the HeapSize declaration in the specific example .int file. diff --git a/mkspecs/unsupported/integrity-ghs/qplatformdefs.h b/mkspecs/unsupported/integrity-ghs/qplatformdefs.h index 919d2cf..589b3bf 100644 --- a/mkspecs/unsupported/integrity-ghs/qplatformdefs.h +++ b/mkspecs/unsupported/integrity-ghs/qplatformdefs.h @@ -89,6 +89,7 @@ #define QT_TRUNCATE ::truncate #define QT_FTRUNCATE ::ftruncate #define QT_LSEEK ::lseek +#define QT_OPEN_LARGEFILE 0 #endif #ifdef QT_LARGEFILE_SUPPORT diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index e411f8f..78993a0 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -118,5 +118,7 @@ win32 { } integrity { SOURCES += io/qfsfileengine_unix.cpp \ - io/qfsfileengine_iterator_unix.cpp + io/qfsfileengine_iterator.cpp \ + io/qfilesystemengine_unix.cpp \ + io/qfilesystemiterator_unix.cpp } diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index cfb17de..b1b5e7e 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -264,12 +264,14 @@ QString QFileSystemEngine::resolveUserName(uint userId) #endif struct passwd *pw = 0; +#if !defined(Q_OS_INTEGRITY) #if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) struct passwd entry; getpwuid_r(userId, &entry, buf.data(), buf.size(), &pw); #else pw = getpwuid(userId); #endif +#endif if (pw) return QFile::decodeName(QByteArray(pw->pw_name)); return QString(); @@ -286,6 +288,7 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) #endif struct group *gr = 0; +#if !defined(Q_OS_INTEGRITY) #if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) size_max = sysconf(_SC_GETGR_R_SIZE_MAX); if (size_max == -1) @@ -305,6 +308,7 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) #else gr = getgrgid(groupId); #endif +#endif if (gr) return QFile::decodeName(QByteArray(gr->gr_name)); return QString(); diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h index 57811fa..95e5b82 100644 --- a/src/gui/text/qfontengine_ft_p.h +++ b/src/gui/text/qfontengine_ft_p.h @@ -196,12 +196,7 @@ public: inline bool useFastGlyphData(glyph_t index, QFixed subPixelPosition) const { return (index < 256 && subPixelPosition == 0); } - inline Glyph *getGlyph(glyph_t index, QFixed subPixelPosition = 0) const - { - if (useFastGlyphData(index, subPixelPosition)) - return fast_glyph_data[index]; - return glyph_data.value(GlyphAndSubPixelPosition(index, subPixelPosition)); - } + inline Glyph *getGlyph(glyph_t index, QFixed subPixelPosition = 0) const; void setGlyph(glyph_t index, QFixed spp, Glyph *glyph); private: @@ -376,6 +371,14 @@ inline uint qHash(const QFontEngineFT::GlyphAndSubPixelPosition &g) return (g.glyph << 8) | (g.subPixelPosition * 10).round().toInt(); } +inline QFontEngineFT::Glyph *QFontEngineFT::QGlyphSet::getGlyph(glyph_t index, QFixed subPixelPosition) const +{ + if (useFastGlyphData(index, subPixelPosition)) + return fast_glyph_data[index]; + return glyph_data.value(GlyphAndSubPixelPosition(index, subPixelPosition)); +} + + QT_END_NAMESPACE #endif // QT_NO_FREETYPE -- cgit v0.12 From 0d0c1082f74888044713d96deca2d510951d018a Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Mon, 19 Sep 2011 19:10:14 +0200 Subject: Fixed automatic plugin path resolving for predefined Qt plugins. When Qt is configured for static build, importing static plugins is supposed to work as described in docs: http://doc.qt.nokia.com/latest/qtplugin.html#Q_IMPORT_PLUGIN This commit updates the qmake mapping for predefined Qt plugins, so that Qt plugins are automatically found when QTPLUGIN keyword is used. Task-number: QTBUG-18609 Merge-request: 1391 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt.prf | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 191a449..326fe10 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -64,29 +64,35 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { # Check if the plugin is known to Qt. We can use this to determine # the plugin path. Unknown plugins must rely on the default link path. ACCESSIBLEPLUGINS = qtaccessiblewidgets qtaccessiblecompatwidgets + BEARERPLUGINS = qgenericbearer qnativewifibearer CODECPLUGINS = qcncodecs qjpcodecs qkrcodecs qtwcodecs - DECORATIONPLUGINS = qdecorationdefault qdecorationwindows - GFXDRIVERPLUGINS = qgfxvnc qscreenvfb qgfxsnap qgfxvga16 qgfxmatrox qgfxvoodoo qgfxtransformed qgfxshadowfb - IMAGEPLUGINS = qgif qmng qjpeg qsvg + DECORATIONPLUGINS = qdecorationdefault qdecorationstyled qdecorationwindows + GFXDRIVERPLUGINS = qgfxvnc qscreenvfb qgfxtransformed qgfxshadowfb qgfxpvregl qscreenlinuxfb qeglnullws qdirectfbscreen qahiscreen + GRAPHICSSYSTEMPLUGINS = qmeegographicssystem qglgraphicssystem qvggraphicssystem qshivavggraphicssystem + IMAGEPLUGINS = qgif qico qmng qjpeg qsvg qtiff INPUTPLUGINS = qimsw-multi - MOUSEDRIVERPLUGINS = qtslibmousehandler + KBDDRIVERPLUGINS = qlinuxinputkbddriver + MOUSEDRIVERPLUGINS = qtslibmousehandler qpcmousedriver qlinuxtpmousedriver SQLPLUGINS = qsqldb2 qsqloci qsqltds qsqlodbc qsqlpsql qsqlibase qsqlmysql qsqlite2 qsqlite - PHONONPLUGINS = phonon_waveout phonon_ds9 + PHONONPLUGINS = phonon_waveout phonon_ds9 phonon_gstreamer phonon_qt7 phonon_mmf - ALLQTPLUGINS = $$ACCESSIBLEPLUGINS $$CODECPLUGINS $$DECORATIONPLUGINS $$GFXDRIVERPLUGINS $$IMAGEPLUGINS $$INPUTPLUGINS $$MOUSEDRIVERPLUGINS $$SQLPLUGINS $$PHONONPLUGINS + ALLQTPLUGINS = $$ACCESSIBLEPLUGINS $$BEARERPLUGINS $$CODECPLUGINS $$DECORATIONPLUGINS $$GFXDRIVERPLUGINS $$ GRAPHICSSYSTEMPLUGINS $$IMAGEPLUGINS $$INPUTPLUGINS $$KBDDRIVERPLUGINS $$MOUSEDRIVERPLUGINS $$SQLPLUGINS $$PHONONPLUGINS QT_PLUGINPATH = contains(ALLQTPLUGINS, $$QTPLUG) { # Determine the plugin path contains(ACCESSIBLEPLUGINS, $$QTPLUG): QT_PLUGINPATH = accessible + contains(BEARERPLUGINS, $$QTPLUG): QT_PLUGINPATH = bearer contains(CODECPLUGINS, $$QTPLUG): QT_PLUGINPATH = codecs contains(DECORATIONPLUGINS, $$QTPLUG): QT_PLUGINPATH = decorations contains(GFXDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = gfxdrivers + contains(GRAPHICSSYSTEMPLUGINS, $$QTPLUG): QT_PLUGINPATH = graphicssystems contains(IMAGEPLUGINS, $$QTPLUG): QT_PLUGINPATH = imageformats contains(INPUTPLUGINS, $$QTPLUG): QT_PLUGINPATH = inputmethods + contains(KBDDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = kbddrivers contains(MOUSEDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = mousedrivers contains(SQLPLUGINS, $$QTPLUG): QT_PLUGINPATH = sqldrivers - contains(PHONONPLUGINS, $$QTPLUG): QT_PLUGINPATH = phonon_backend + contains(PHONONPLUGINS, $$QTPLUG): QT_PLUGINPATH = phonon_backend } # Generate the plugin linker line -- cgit v0.12