summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt.prf
diff options
context:
space:
mode:
authorQt by Nokia <qt-info@nokia.com>2011-04-27 12:05:43 +0200
committeraxis <qt-info@nokia.com>2011-04-27 12:05:43 +0200
commit38be0d13830efd2d98281c645c3a60afe05ffece (patch)
tree6ea73f3ec77f7d153333779883e8120f82820abe /mkspecs/features/qt.prf
Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12
Diffstat (limited to 'mkspecs/features/qt.prf')
-rw-r--r--mkspecs/features/qt.prf221
1 files changed, 221 insertions, 0 deletions
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
new file mode 100644
index 0000000000..191a449719
--- /dev/null
+++ b/mkspecs/features/qt.prf
@@ -0,0 +1,221 @@
+CONFIG *= moc thread
+
+#handle defines
+win32 {
+ qt_static:DEFINES += QT_NODLL
+ !contains(DEFINES, QT_NODLL) {
+ QT_ENV_DLL = $$(QT_DLL)
+ QT_ENV_NO_DLL = $$(QT_NODLL)
+ isEmpty(QT_ENV_NO_DLL) {
+ shared|!isEmpty(QT_ENV_DLL):DEFINES += QT_DLL
+ }
+ contains(DEFINES, QT_MAKEDLL)|contains(DEFINES, QT_DLL):QMAKE_QT_DLL = 1
+ }
+}
+CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG
+no_keywords:DEFINES += QT_NO_KEYWORDS
+plugin { #Qt plugins
+ static:DEFINES += QT_STATICPLUGIN
+ DEFINES += QT_PLUGIN
+
+ # Triggers both on Qt being configured with -arch boundschecker,
+ # and if you qmake CONFIG+=boundchecker on your plugin project
+ boundschecker|contains(QT_CONFIG,boundschecker) {
+ # This option is added for plugins when Qt is configured for Boundschecker,
+ # since we want Boundschecker to not instrument the qt_plugin_query_verification_data
+ # function, as we call that function without the plugin's dependent DLLs, thus
+ # Boundscheckers instrumentation will fail. The function only returns a const char *,
+ # so no instrumentation is really needed on that function anyways.
+ QMAKE_CFLAGS += /nmignore:*:qt_plugin_query_verification_data
+ QMAKE_CXXFLAGS += /nmignore:*:qt_plugin_query_verification_data
+ }
+}
+
+#handle includes
+INCLUDEPATH = $$QMAKE_INCDIR_QT $$INCLUDEPATH #prepending prevents us from picking up "stale" includes
+win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt
+
+# As order does matter for static libs, we reorder the QT variable here
+TMPLIBS = declarative webkit phonon multimedia dbus testlib script scripttools svg qt3support sql xmlpatterns xml egl opengl openvg gui network core meegographicssystemhelper
+for(QTLIB, $$list($$TMPLIBS)) {
+ contains(QT, $$QTLIB): QT_ORDERED += $$QTLIB
+}
+
+QT_UNKNOWN = $$QT
+QT_UNKNOWN -= $$QT_ORDERED
+QT = $$QT_ORDERED
+for(QTLIB, $$list($$QT_UNKNOWN)) {
+ !contains(TMPLIBS, $$QTLIB):message("Warning: unknown QT: $$QTLIB")
+}
+
+QT_PLUGIN_VERIFY = QTPLUGIN DEPLOYMENT_PLUGIN
+for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) {
+ for(QTPLUG, $$list($$lower($$unique($$QT_CURRENT_VERIFY)))) {
+ qplugin_style =
+ !qt_debug:!qt_release {
+ CONFIG(debug, debug|release):qplugin_style = debug
+ else:qplugin_style = release
+ } else:CONFIG(qt_debug, qt_debug|qt_release) {
+ qplugin_style = debug
+ } else {
+ qplugin_style = release
+ }
+
+ # 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
+ CODECPLUGINS = qcncodecs qjpcodecs qkrcodecs qtwcodecs
+ DECORATIONPLUGINS = qdecorationdefault qdecorationwindows
+ GFXDRIVERPLUGINS = qgfxvnc qscreenvfb qgfxsnap qgfxvga16 qgfxmatrox qgfxvoodoo qgfxtransformed qgfxshadowfb
+ IMAGEPLUGINS = qgif qmng qjpeg qsvg
+ INPUTPLUGINS = qimsw-multi
+ MOUSEDRIVERPLUGINS = qtslibmousehandler
+ SQLPLUGINS = qsqldb2 qsqloci qsqltds qsqlodbc qsqlpsql qsqlibase qsqlmysql qsqlite2 qsqlite
+ PHONONPLUGINS = phonon_waveout phonon_ds9
+
+ ALLQTPLUGINS = $$ACCESSIBLEPLUGINS $$CODECPLUGINS $$DECORATIONPLUGINS $$GFXDRIVERPLUGINS $$IMAGEPLUGINS $$INPUTPLUGINS $$MOUSEDRIVERPLUGINS $$SQLPLUGINS $$PHONONPLUGINS
+
+ QT_PLUGINPATH =
+ contains(ALLQTPLUGINS, $$QTPLUG) {
+ # Determine the plugin path
+ contains(ACCESSIBLEPLUGINS, $$QTPLUG): QT_PLUGINPATH = accessible
+ contains(CODECPLUGINS, $$QTPLUG): QT_PLUGINPATH = codecs
+ contains(DECORATIONPLUGINS, $$QTPLUG): QT_PLUGINPATH = decorations
+ contains(GFXDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = gfxdrivers
+ contains(IMAGEPLUGINS, $$QTPLUG): QT_PLUGINPATH = imageformats
+ contains(INPUTPLUGINS, $$QTPLUG): QT_PLUGINPATH = inputmethods
+ contains(MOUSEDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = mousedrivers
+ contains(SQLPLUGINS, $$QTPLUG): QT_PLUGINPATH = sqldrivers
+ contains(PHONONPLUGINS, $$QTPLUG): QT_PLUGINPATH = phonon_backend
+ }
+
+ # Generate the plugin linker line
+ target_qt:isEqual(TARGET, QTPLUG) {
+ warning($$TARGET cannot have a QTPLUGIN of $$QTPLUG)
+ } else {
+ QT_LINKAGE = -l$${QTPLUG}
+ win32 {
+ CONFIG(debug, debug|release):QT_LINKAGE = -l$${QTPLUG}d
+ } else:mac {
+ isEqual(qplugin_style, debug):QT_LINKAGE = -l$${QTPLUG}_debug
+ }
+ }
+
+ # Only link against plugin in static builds
+ isEqual(QT_CURRENT_VERIFY, QTPLUGIN): {
+ !isEmpty(QT_PLUGINPATH): LIBS *= -L$$[QT_INSTALL_PLUGINS]/$$QT_PLUGINPATH
+ LIBS += $$QT_LINKAGE
+ # if the plugin is linked statically there is no need to deploy it
+ DEPLOYMENT_PLUGIN -= $$QT_CURRENT_VERIFY
+ }
+ isEqual(QT_CURRENT_VERIFY, DEPLOYMENT_PLUGIN):shared:wince*: {
+ QT_ITEM =
+ CONFIG(debug, debug|release): QT_ITEM = $${QTPLUG}d4.dll
+ else: QT_ITEM = $${QTPLUG}4.dll
+
+ eval(qt_additional_plugin_$${QTPLUG}.files = $$[QT_INSTALL_PLUGINS]/$${QT_PLUGINPATH}/$${QT_ITEM})
+ eval(qt_additional_plugin_$${QTPLUG}.path = $${QT_PLUGINPATH})
+
+ DEPLOYMENT *= qt_additional_plugin_$${QTPLUG}
+ }
+ isEqual(QT_CURRENT_VERIFY, DEPLOYMENT_PLUGIN):shared:symbian: {
+ QT_ITEM = $${QTPLUG}.dll
+
+ eval(qt_additional_plugin_$${QTPLUG}.files = $${QT_ITEM})
+ eval(qt_additional_plugin_$${QTPLUG}.path = $${QT_PLUGINPATH})
+
+ DEPLOYMENT *= qt_additional_plugin_$${QTPLUG}
+ }
+ }
+}
+#specific module settings
+!isEmpty(QT_BUILD_TREE):QMAKE_LIBDIR = $$QT_BUILD_TREE/lib $$QMAKE_LIBDIR #as above, prepending prevents us from picking up "stale" libs
+QMAKE_LIBDIR += $$QMAKE_LIBDIR_QT
+for(QTLIB, $$list($$lower($$unique(QT)))) {
+ unset(qlib_style)
+ !qt_debug:!qt_release {
+ CONFIG(debug, debug|release):qlib_style = debug
+ else:qlib_style = release
+ } else:CONFIG(qt_debug, qt_debug|qt_release) {
+ qlib_style = debug
+ } else {
+ qlib_style = release
+ }
+
+ unset(qlib)
+ isEqual(QTLIB, gui):qlib = QtGui
+ else:isEqual(QTLIB, network):qlib = QtNetwork
+ else:isEqual(QTLIB, xml):qlib = QtXml
+ else:isEqual(QTLIB, xmlpatterns):qlib = QtXmlPatterns
+ else:isEqual(QTLIB, opengl):qlib = QtOpenGL
+ else:isEqual(QTLIB, openvg):qlib = QtOpenVG
+ else:isEqual(QTLIB, sql):qlib = QtSql
+ else:isEqual(QTLIB, core):qlib = QtCore
+ else:isEqual(QTLIB, canvas):qlib = QtCanvas
+ else:isEqual(QTLIB, qt3support):qlib = Qt3Support
+ else:isEqual(QTLIB, svg):qlib = QtSvg
+ else:isEqual(QTLIB, script):qlib = QtScript
+ else:isEqual(QTLIB, scripttools):qlib = QtScriptTools
+ else:isEqual(QTLIB, testlib):qlib = QtTest
+ else:isEqual(QTLIB, dbus):qlib = QtDBus
+ else:isEqual(QTLIB, phonon) {
+ qlib = phonon
+ INCLUDEPATH += $$QMAKE_INCDIR_QT/phonon_compat
+
+ # The Helix backend requires this. Since we can't let a plugin set it,
+ # we bump the values for all Symbian Phonon plugins.
+ symbian:isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x040000 0x1600000
+
+ } else:isEqual(QTLIB, webkit) {
+ qlib = QtWebKit
+ aix-xlc {
+ # Flags recommended by IBM when using WebKit
+ QMAKE_LFLAGS -= -bmaxdata:0x80000000
+ QMAKE_LFLAGS += -bmaxdata:0xD0000000/dsa
+ }
+ } else:isEqual(QTLIB, declarative):qlib = QtDeclarative
+ else:isEqual(QTLIB, multimedia):qlib = QtMultimedia
+ else:isEqual(QTLIB, meegographicssystemhelper):qlib = QtMeeGoGraphicsSystemHelper
+ else:message("Unknown QT: $$QTLIB"):qlib =
+ !isEmpty(qlib) {
+ target_qt:isEqual(TARGET, qlib) {
+ warning($$TARGET cannot have a QT of $$QTLIB)
+ } else {
+ DEFINES *= $$upper(QT_$${QTLIB}_LIB)
+ isEqual(QTLIB, opengl):CONFIG += opengl
+ isEqual(QTLIB, openvg):CONFIG += openvg
+ isEqual(QTLIB, qt3support):DEFINES *= QT3_SUPPORT
+ isEqual(QTLIB, testlib):CONFIG += console
+ isEqual(QTLIB, dbus):CONFIG += dbusadaptors dbusinterfaces
+
+ qtAddLibrary($$qlib)
+ }
+ }
+}
+
+qt_compat {
+ !qt_compat_no_warning:QTDIR_build:warning(***USE of COMPAT inside of QTDIR!**) #just for us
+ INCLUDEPATH *= $$QMAKE_INCDIR_QT/Qt
+ DEFINES *= QT_COMPAT
+}
+
+wince*:static:gui {
+ QTLIB += qmenu_wce.res
+}
+
+!isEmpty(QT_NAMESPACE):DEFINES *= QT_NAMESPACE=$$QT_NAMESPACE
+mac {
+ !isEmpty(QT_NAMESPACE_MAC_CRC):DEFINES *= QT_NAMESPACE_MAC_CRC=$$QT_NAMESPACE_MAC_CRC
+}
+
+#SIMD defines:
+mmx:DEFINES += QT_HAVE_MMX
+3dnow:DEFINES += QT_HAVE_3DNOW
+sse:DEFINES += QT_HAVE_SSE QT_HAVE_MMXEXT
+sse2:DEFINES += QT_HAVE_SSE2
+sse3:DEFINES += QT_HAVE_SSE3
+ssse3:DEFINES += QT_HAVE_SSSE3
+sse4_1:DEFINES += QT_HAVE_SSE4_1
+sse4_2:DEFINES += QT_HAVE_SSE4_2
+avx:DEFINES += QT_HAVE_AVX
+iwmmxt:DEFINES += QT_HAVE_IWMMXT