0
|
1 |
CONFIG *= moc thread
|
|
2 |
|
|
3 |
#handle defines
|
|
4 |
win32 {
|
|
5 |
qt_static:DEFINES += QT_NODLL
|
|
6 |
!contains(DEFINES, QT_NODLL) {
|
|
7 |
QT_ENV_DLL = $$(QT_DLL)
|
|
8 |
QT_ENV_NO_DLL = $$(QT_NODLL)
|
|
9 |
isEmpty(QT_ENV_NO_DLL) {
|
|
10 |
shared|!isEmpty(QT_ENV_DLL):DEFINES += QT_DLL
|
|
11 |
}
|
|
12 |
contains(DEFINES, QT_MAKEDLL)|contains(DEFINES, QT_DLL):QMAKE_QT_DLL = 1
|
|
13 |
}
|
|
14 |
}
|
|
15 |
CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG
|
|
16 |
no_keywords:DEFINES += QT_NO_KEYWORDS
|
|
17 |
plugin { #Qt plugins
|
|
18 |
static:DEFINES += QT_STATICPLUGIN
|
|
19 |
DEFINES += QT_PLUGIN
|
|
20 |
|
|
21 |
# Triggers both on Qt being configured with -arch boundschecker,
|
|
22 |
# and if you qmake CONFIG+=boundchecker on your plugin project
|
|
23 |
boundschecker|contains(QT_CONFIG,boundschecker) {
|
|
24 |
# This option is added for plugins when Qt is configured for Boundschecker,
|
|
25 |
# since we want Boundschecker to not instrument the qt_plugin_query_verification_data
|
|
26 |
# function, as we call that function without the plugin's dependent DLLs, thus
|
|
27 |
# Boundscheckers instrumentation will fail. The function only returns a const char *,
|
|
28 |
# so no instrumentation is really needed on that function anyways.
|
|
29 |
QMAKE_CFLAGS += /nmignore:*:qt_plugin_query_verification_data
|
|
30 |
QMAKE_CXXFLAGS += /nmignore:*:qt_plugin_query_verification_data
|
|
31 |
}
|
|
32 |
}
|
|
33 |
|
|
34 |
#handle includes
|
|
35 |
INCLUDEPATH = $$QMAKE_INCDIR_QT $$INCLUDEPATH #prepending prevents us from picking up "stale" includes
|
|
36 |
win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt
|
|
37 |
|
|
38 |
# As order does matter for static libs, we reorder the QT variable here
|
|
39 |
TMPLIBS = webkit phonon multimedia dbus testlib script scripttools svg qt3support sql xmlpatterns xml egl opengl openvg gui network core
|
|
40 |
for(QTLIB, $$list($$TMPLIBS)) {
|
|
41 |
contains(QT, $$QTLIB): QT_ORDERED += $$QTLIB
|
|
42 |
}
|
|
43 |
|
|
44 |
QT_UNKNOWN = $$QT
|
|
45 |
QT_UNKNOWN -= $$QT_ORDERED
|
|
46 |
QT = $$QT_ORDERED
|
|
47 |
for(QTLIB, $$list($$QT_UNKNOWN)) {
|
|
48 |
!contains(TMPLIBS, $$QTLIB):message("Warning: unknown QT: $$QTLIB")
|
|
49 |
}
|
|
50 |
|
|
51 |
QT_PLUGIN_VERIFY = QTPLUGIN DEPLOYMENT_PLUGIN
|
|
52 |
for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) {
|
|
53 |
for(QTPLUG, $$list($$lower($$unique($$QT_CURRENT_VERIFY)))) {
|
|
54 |
qplugin_style =
|
|
55 |
!qt_debug:!qt_release {
|
|
56 |
CONFIG(debug, debug|release):qplugin_style = debug
|
|
57 |
else:qplugin_style = release
|
|
58 |
} else:CONFIG(qt_debug, qt_debug|qt_release) {
|
|
59 |
qplugin_style = debug
|
|
60 |
} else {
|
|
61 |
qplugin_style = release
|
|
62 |
}
|
|
63 |
|
|
64 |
# Check if the plugin is known to Qt. We can use this to determine
|
|
65 |
# the plugin path. Unknown plugins must rely on the default link path.
|
|
66 |
ACCESSIBLEPLUGINS = qtaccessiblewidgets qtaccessiblecompatwidgets
|
|
67 |
CODECPLUGINS = qcncodecs qjpcodecs qkrcodecs qtwcodecs
|
|
68 |
DECORATIONPLUGINS = qdecorationdefault qdecorationwindows
|
|
69 |
GFXDRIVERPLUGINS = qgfxvnc qscreenvfb qgfxsnap qgfxvga16 qgfxmatrox qgfxvoodoo qgfxtransformed qgfxshadowfb
|
|
70 |
IMAGEPLUGINS = qgif qmng qjpeg qsvg
|
|
71 |
INPUTPLUGINS = qimsw-multi
|
|
72 |
MOUSEDRIVERPLUGINS = qtslibmousehandler
|
|
73 |
SQLPLUGINS = qsqldb2 qsqloci qsqltds qsqlodbc qsqlpsql qsqlibase qsqlmysql qsqlite2 qsqlite
|
|
74 |
PHONONPLUGINS = phonon_waveout phonon_ds9
|
|
75 |
|
|
76 |
ALLQTPLUGINS = $$ACCESSIBLEPLUGINS $$CODECPLUGINS $$DECORATIONPLUGINS $$GFXDRIVERPLUGINS $$IMAGEPLUGINS $$INPUTPLUGINS $$MOUSEDRIVERPLUGINS $$SQLPLUGINS $$PHONONPLUGINS
|
|
77 |
|
|
78 |
QT_PLUGINPATH =
|
|
79 |
contains(ALLQTPLUGINS, $$QTPLUG) {
|
|
80 |
# Determine the plugin path
|
|
81 |
contains(ACCESSIBLEPLUGINS, $$QTPLUG): QT_PLUGINPATH = accessible
|
|
82 |
contains(CODECPLUGINS, $$QTPLUG): QT_PLUGINPATH = codecs
|
|
83 |
contains(DECORATIONPLUGINS, $$QTPLUG): QT_PLUGINPATH = decorations
|
|
84 |
contains(GFXDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = gfxdrivers
|
|
85 |
contains(IMAGEPLUGINS, $$QTPLUG): QT_PLUGINPATH = imageformats
|
|
86 |
contains(INPUTPLUGINS, $$QTPLUG): QT_PLUGINPATH = inputmethods
|
|
87 |
contains(MOUSEDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = mousedrivers
|
|
88 |
contains(SQLPLUGINS, $$QTPLUG): QT_PLUGINPATH = sqldrivers
|
|
89 |
contains(PHONONPLUGINS, $$QTPLUG): QT_PLUGINPATH = phonon_backend
|
|
90 |
}
|
|
91 |
|
|
92 |
# Generate the plugin linker line
|
|
93 |
target_qt:isEqual(TARGET, QTPLUG) {
|
|
94 |
warning($$TARGET cannot have a QTPLUGIN of $$QTPLUG)
|
|
95 |
} else {
|
|
96 |
QT_LINKAGE = -l$${QTPLUG}
|
|
97 |
win32 {
|
|
98 |
CONFIG(debug, debug|release):QT_LINKAGE = -l$${QTPLUG}d
|
|
99 |
} else:mac {
|
|
100 |
isEqual(qplugin_style, debug):QT_LINKAGE = -l$${QTPLUG}_debug
|
|
101 |
}
|
|
102 |
}
|
|
103 |
|
|
104 |
# Only link against plugin in static builds
|
|
105 |
isEqual(QT_CURRENT_VERIFY, QTPLUGIN): {
|
|
106 |
!isEmpty(QT_PLUGINPATH): LIBS *= -L$$[QT_INSTALL_PLUGINS]/$$QT_PLUGINPATH
|
|
107 |
LIBS += $$QT_LINKAGE
|
|
108 |
# if the plugin is linked statically there is no need to deploy it
|
|
109 |
DEPLOYMENT_PLUGIN -= $$QT_CURRENT_VERIFY
|
|
110 |
}
|
|
111 |
isEqual(QT_CURRENT_VERIFY, DEPLOYMENT_PLUGIN):shared:wince*: {
|
|
112 |
QT_ITEM =
|
|
113 |
CONFIG(debug, debug|release): QT_ITEM = $${QTPLUG}d4.dll
|
|
114 |
else: QT_ITEM = $${QTPLUG}4.dll
|
|
115 |
|
|
116 |
eval(qt_additional_plugin_$${QTPLUG}.sources = $$[QT_INSTALL_PLUGINS]/$${QT_PLUGINPATH}/$${QT_ITEM})
|
|
117 |
eval(qt_additional_plugin_$${QTPLUG}.path = $${QT_PLUGINPATH})
|
|
118 |
|
|
119 |
DEPLOYMENT *= qt_additional_plugin_$${QTPLUG}
|
|
120 |
}
|
|
121 |
isEqual(QT_CURRENT_VERIFY, DEPLOYMENT_PLUGIN):shared:symbian: {
|
|
122 |
QT_ITEM = $${QTPLUG}.dll
|
|
123 |
|
|
124 |
eval(qt_additional_plugin_$${QTPLUG}.sources = $${QT_ITEM})
|
|
125 |
eval(qt_additional_plugin_$${QTPLUG}.path = $${QT_PLUGINPATH})
|
|
126 |
|
|
127 |
DEPLOYMENT *= qt_additional_plugin_$${QTPLUG}
|
|
128 |
}
|
|
129 |
}
|
|
130 |
}
|
|
131 |
#specific module settings
|
|
132 |
!isEmpty(QT_BUILD_TREE):QMAKE_LIBDIR = $$QT_BUILD_TREE/lib $$QMAKE_LIBDIR #as above, prepending prevents us from picking up "stale" libs
|
|
133 |
QMAKE_LIBDIR += $$QMAKE_LIBDIR_QT
|
|
134 |
for(QTLIB, $$list($$lower($$unique(QT)))) {
|
|
135 |
unset(qlib_style)
|
|
136 |
!qt_debug:!qt_release {
|
|
137 |
CONFIG(debug, debug|release):qlib_style = debug
|
|
138 |
else:qlib_style = release
|
|
139 |
} else:CONFIG(qt_debug, qt_debug|qt_release) {
|
|
140 |
qlib_style = debug
|
|
141 |
} else {
|
|
142 |
qlib_style = release
|
|
143 |
}
|
|
144 |
|
|
145 |
unset(qlib)
|
|
146 |
isEqual(QTLIB, gui):qlib = QtGui
|
|
147 |
else:isEqual(QTLIB, network):qlib = QtNetwork
|
|
148 |
else:isEqual(QTLIB, xml):qlib = QtXml
|
|
149 |
else:isEqual(QTLIB, xmlpatterns):qlib = QtXmlPatterns
|
|
150 |
else:isEqual(QTLIB, opengl):qlib = QtOpenGL
|
|
151 |
else:isEqual(QTLIB, openvg):qlib = QtOpenVG
|
|
152 |
else:isEqual(QTLIB, sql):qlib = QtSql
|
|
153 |
else:isEqual(QTLIB, core):qlib = QtCore
|
|
154 |
else:isEqual(QTLIB, canvas):qlib = QtCanvas
|
|
155 |
else:isEqual(QTLIB, qt3support):qlib = Qt3Support
|
|
156 |
else:isEqual(QTLIB, svg):qlib = QtSvg
|
|
157 |
else:isEqual(QTLIB, script):qlib = QtScript
|
|
158 |
else:isEqual(QTLIB, scripttools):qlib = QtScriptTools
|
|
159 |
else:isEqual(QTLIB, testlib):qlib = QtTest
|
|
160 |
else:isEqual(QTLIB, dbus):qlib = QtDBus
|
|
161 |
else:isEqual(QTLIB, phonon) {
|
|
162 |
qlib = phonon
|
|
163 |
INCLUDEPATH += $$QMAKE_INCDIR_QT/phonon_compat/phonon
|
|
164 |
INCLUDEPATH += $$QMAKE_INCDIR_QT/phonon_compat
|
|
165 |
INCLUDEPATH += $$QMAKE_INCDIR_QT/phonon/Phonon
|
|
166 |
|
|
167 |
# The Helix backend requires this. Since we can't let a plugin set it,
|
|
168 |
# we bump the values for all Symbian Phonon plugins.
|
|
169 |
symbian:isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x040000 0x1600000
|
|
170 |
|
|
171 |
} else:isEqual(QTLIB, webkit):qlib = QtWebKit
|
|
172 |
else:isEqual(QTLIB, multimedia):qlib = QtMultimedia
|
|
173 |
else:message("Unknown QT: $$QTLIB"):qlib =
|
|
174 |
!isEmpty(qlib) {
|
|
175 |
target_qt:isEqual(TARGET, qlib) {
|
|
176 |
warning($$TARGET cannot have a QT of $$QTLIB)
|
|
177 |
} else {
|
|
178 |
DEFINES *= $$upper(QT_$${QTLIB}_LIB)
|
|
179 |
isEqual(QTLIB, opengl):CONFIG += opengl
|
|
180 |
isEqual(QTLIB, openvg):CONFIG += openvg
|
|
181 |
isEqual(QTLIB, qt3support):DEFINES *= QT3_SUPPORT
|
|
182 |
isEqual(QTLIB, testlib):CONFIG += console
|
|
183 |
isEqual(QTLIB, dbus):CONFIG += dbusadaptors dbusinterfaces
|
|
184 |
|
|
185 |
qtAddLibrary($$qlib)
|
|
186 |
}
|
|
187 |
}
|
|
188 |
}
|
|
189 |
|
|
190 |
qt_compat {
|
|
191 |
!qt_compat_no_warning:QTDIR_build:warning(***USE of COMPAT inside of QTDIR!**) #just for us
|
|
192 |
INCLUDEPATH *= $$QMAKE_INCDIR_QT/Qt
|
|
193 |
DEFINES *= QT_COMPAT
|
|
194 |
}
|
|
195 |
|
|
196 |
wince*:static:gui {
|
|
197 |
QTLIB += qmenu_wce.res
|
|
198 |
}
|
|
199 |
|
|
200 |
!isEmpty(QT_NAMESPACE):DEFINES *= QT_NAMESPACE=$$QT_NAMESPACE
|
|
201 |
mac {
|
|
202 |
!isEmpty(QT_NAMESPACE_MAC_CRC):DEFINES *= QT_NAMESPACE_MAC_CRC=$$QT_NAMESPACE_MAC_CRC
|
|
203 |
}
|