summaryrefslogtreecommitdiffstats
path: root/meta/recipes-qt/qt4/qt4.inc
diff options
context:
space:
mode:
authorAdrian Dudau <adrian.dudau@enea.com>2014-06-26 14:36:22 +0200
committerAdrian Dudau <adrian.dudau@enea.com>2014-06-26 15:32:53 +0200
commitf4cf9fe05bb3f32fabea4e54dd92d368967a80da (patch)
tree487180fa9866985ea7b28e625651765d86f515c3 /meta/recipes-qt/qt4/qt4.inc
downloadpoky-f4cf9fe05bb3f32fabea4e54dd92d368967a80da.tar.gz
initial commit for Enea Linux 4.0
Migrated from the internal git server on the daisy-enea branch Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
Diffstat (limited to 'meta/recipes-qt/qt4/qt4.inc')
-rw-r--r--meta/recipes-qt/qt4/qt4.inc393
1 files changed, 393 insertions, 0 deletions
diff --git a/meta/recipes-qt/qt4/qt4.inc b/meta/recipes-qt/qt4/qt4.inc
new file mode 100644
index 0000000000..9a10138e94
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4.inc
@@ -0,0 +1,393 @@
1inherit qmake_base
2
3DEPENDS += "qt4-tools-native freetype jpeg libpng zlib dbus openssl glib-2.0 gstreamer gst-plugins-base sqlite3 tiff icu"
4DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"
5
6require qt4_arch.inc
7
8QT_DISTRO_FLAGS ?= "-no-accessibility -no-sm"
9QT_DISTRO_FLAGS_linuxstdbase = "-sm"
10
11QT_SQL_DRIVER_FLAGS ?= "-no-sql-ibase -no-sql-mysql -no-sql-psql -no-sql-odbc -plugin-sql-sqlite -system-sqlite"
12
13QT_GLFLAGS ?= ""
14
15
16QT_QT3SUPPORT ?= "-qt3support"
17QT_XML ?= "-xmlpatterns"
18QT_WEBKIT ?= "-webkit"
19QT_PHONON ?= "-phonon"
20QT_DBUS ?= "-qdbus"
21QT_MULTIMEDIA ?= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', '-pulseaudio', '-no-pulseaudio', d)}"
22
23QT_CONFIG_FLAGS += "-release -no-cups -reduce-relocations \
24 -shared -no-nas-sound -no-nis \
25 -system-libjpeg -system-libpng -system-libtiff -system-zlib \
26 -no-pch -stl -glib -icu \
27 -no-rpath -silent \
28 ${QT_DBUS} \
29 ${QT_QT3SUPPORT} \
30 ${QT_WEBKIT} \
31 ${QT_PHONON} \
32 ${QT_XML} \
33 ${QT_MULTIMEDIA} \
34 ${QT_SQL_DRIVER_FLAGS} \
35 ${QT_DISTRO_FLAGS} \
36 ${QT_GLFLAGS}"
37
38EXTRA_OEMAKE = "-e"
39
40EXTRA_ENV = 'QMAKE="${STAGING_BINDIR_NATIVE}/qmake2 -after \
41 INCPATH+=${STAGING_INCDIR}/freetype2 LIBS+=-L${STAGING_LIBDIR}" \
42 QMAKESPEC="${QMAKESPEC}" LINK="${CXX} -Wl,-rpath-link,${STAGING_LIBDIR}" \
43 AR="${TARGET_PREFIX}ar cqs" \
44 MOC="${STAGING_BINDIR_NATIVE}/moc4" UIC="${STAGING_BINDIR_NATIVE}/uic4" MAKE="make -e"'
45
46export QT_CONF_PATH="${WORKDIR}/qt.conf"
47
48# Library packages
49QT_LIB_NAMES = "Qt3Support QtAssistantClient QtCLucene QtCore QtDBus QtDesigner QtDesignerComponents QtGui QtHelp QtNetwork QtOpenGL QtScript QtScriptTools QtSql QtSvg QtTest QtUiTools QtWebKit QtXml QtXmlPatterns phonon QtMultimedia QtOpenVG QtMediaServices QtDeclarative"
50
51QT_EXTRA_LIBS = "pvrQWSWSEGL"
52
53python __anonymous () {
54 lib_packages = []
55 dev_packages = []
56 dbg_packages = []
57 staticdev_packages = []
58 for name in d.getVar("QT_LIB_NAMES", True).split():
59 pkg = d.getVar("QT_BASE_LIB", True) + name.lower().replace("qt", "").replace("_", "-") + "4"
60 # NOTE: the headers for QtAssistantClient are different
61 incname = name.replace("QtAssistantClient", "QtAssistant")
62 d.setVar("FILES_%s" % pkg, "${libdir}/lib%(name)s${QT_LIBINFIX}.so.*" % locals())
63 d.setVar("FILES_%s-dev" % pkg, """${libdir}/lib%(name)s${QT_LIBINFIX}.prl
64 ${libdir}/lib%(name)s${QT_LIBINFIX}.la
65 ${libdir}/lib%(name)s${QT_LIBINFIX}.so
66 ${includedir}/${QT_DIR_NAME}/%(incname)s
67 ${libdir}/pkgconfig/%(name)s${QT_LIBINFIX}.pc""" % locals())
68 d.setVar("FILES_%s-staticdev" % pkg, "${libdir}/lib%(name)s${QT_LIBINFIX}.a" % locals())
69 d.setVar("FILES_%s-dbg" % pkg, "${libdir}/.debug/lib%(name)s${QT_LIBINFIX}.so*" % locals())
70 d.setVar("RRECOMMENDS_%s-dbg" % pkg, "${PN}-dbg")
71 lib_packages.append(pkg)
72 dev_packages.append("%s-dev" % pkg)
73 dbg_packages.append("%s-dbg" % pkg)
74 staticdev_packages.append("%s-staticdev" % pkg)
75 for name in d.getVar("OTHER_PACKAGES", True).split():
76 dbg_packages.append("%s-dbg" % name)
77 staticdev_packages.append("%s-staticdev" % name)
78
79 for name in d.getVar("QT_EXTRA_LIBS", True).split():
80 pkg = d.getVar("QT_BASE_LIB", True) + name.lower().replace("qt", "").replace("_", "-") + "4"
81 d.setVar("FILES_%s" % pkg, "${libdir}/lib%(name)s.so.*" % locals())
82 d.setVar("FILES_%s-staticdev" % pkg, "${libdir}/lib%(name)s.a" % locals())
83 d.setVar("FILES_%s-dev" % pkg, """${libdir}/lib%(name)s.prl
84 ${libdir}/lib%(name)s.la
85 ${libdir}/lib%(name)s.so
86 ${includedir}/${QT_DIR_NAME}/%(incname)s
87 ${libdir}/pkgconfig/%(name)s.pc""" % locals())
88 d.setVar("FILES_%s-dbg" % pkg, "${libdir}/.debug/lib%(name)s.so*" % locals())
89 d.setVar("RRECOMMENDS_%s-dbg" % pkg, "${PN}-dbg")
90 lib_packages.append(pkg)
91 dev_packages.append("%s-dev" % pkg)
92 dbg_packages.append("%s-dbg" % pkg)
93 staticdev_packages.append("%s-staticdev" % pkg)
94
95 d.setVar("LIB_PACKAGES", " ".join(lib_packages))
96 d.setVar("DEV_PACKAGES", " ".join(dev_packages))
97 d.setVar("DBG_PACKAGES", " ".join(dbg_packages))
98 d.setVar("STATICDEV_PACKAGES", " ".join(staticdev_packages))
99}
100
101OTHER_PACKAGES = "\
102 ${QT_BASE_NAME}-tools \
103 ${QT_BASE_NAME}-assistant \
104 ${QT_BASE_NAME}-common \
105 ${QT_BASE_NAME}-dbus \
106 ${QT_BASE_NAME}-demos \
107 ${QT_BASE_NAME}-designer \
108 ${QT_BASE_NAME}-examples \
109 ${QT_BASE_NAME}-linguist \
110 ${QT_BASE_NAME}-makeqpf \
111 ${QT_BASE_NAME}-mkspecs \
112 ${QT_BASE_NAME}-pixeltool \
113 ${QT_BASE_NAME}-qmlviewer \
114 ${QT_BASE_NAME}-xmlpatterns \
115 ${QT_BASE_NAME}-qt3to4 \
116 ${QT_BASE_NAME}-qml-plugins"
117
118#We prepend so ${QT_BASE_NAME}-demos-doc comes before ${PN}-doc,so the packaging of FILES_ get done before.
119PACKAGES =+ "${QT_BASE_NAME}-demos-doc"
120PACKAGES += " \
121 ${LIB_PACKAGES} \
122 ${DEV_PACKAGES} \
123 ${DBG_PACKAGES} \
124 ${STATICDEV_PACKAGES} \
125 ${OTHER_PACKAGES}"
126
127PACKAGES_DYNAMIC += "^${QT_BASE_NAME}-plugin-.* ^${QT_BASE_NAME}-translation-.* ^${QT_BASE_NAME}-phrasebook-.*"
128
129ALLOW_EMPTY_${PN} = "1"
130FILES_${PN} = ""
131FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
132FILES_${PN}-dbg = "/usr/src/debug/"
133FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
134RRECOMMENDS_${PN} = "${LIB_PACKAGES} ${OTHER_PACKAGES}"
135RRECOMMENDS_${PN}-dev = "${DEV_PACKAGES}"
136RRECOMMENDS_${PN}-dbg = "${DBG_PACKAGES}"
137RRECOMMENDS_${QT_BASE_LIB}core4_append_libc-glibc = " eglibc-gconv-utf-16"
138RRECOMMENDS_${QT_BASE_NAME}-demos += " \
139 ${QT_BASE_NAME}-examples \
140 ${QT_BASE_NAME}-plugin-sqldriver-sqlite \
141 ${QT_BASE_NAME}-plugin-imageformat-jpeg \
142 ${QT_BASE_NAME}-qml-plugins \
143 ${QT_BASE_NAME}-assistant \
144 ${QT_BASE_NAME}-demos-doc"
145RRECOMMENDS_${QT_BASE_NAME}-examples += " \
146 ${QT_BASE_NAME}-plugin-sqldriver-sqlite \
147 ${QT_BASE_NAME}-plugin-imageformat-jpeg \
148 ${QT_BASE_NAME}-qml-plugins"
149RRECOMMENDS_${QT_BASE_NAME}-qmlviewer += " \
150 ${QT_BASE_NAME}-qml-plugins"
151RRECOMMENDS_${QT_BASE_NAME}-doc += " \
152 ${QT_BASE_NAME}-demos-doc"
153
154RPROVIDES_${QT_BASE_NAME}-tools += "qmake2"
155RREPLACES_${QT_BASE_NAME}-tools += "qmake2"
156
157FILES_${QT_BASE_NAME}-tools = "${bindir}/qttracereplay ${bindir}/qdoc* ${bindir}/qmake ${bindir}/moc ${bindir}/uic* ${bindir}/rcc"
158FILES_${QT_BASE_NAME}-tools-dbg = "${bindir}/.debug/qttracereplay ${bindir}/.debug/qdoc* ${bindir}/.debug/qmake ${bindir}/.debug/uic* ${bindir}/.debug/moc ${bindir}/.debug/rcc"
159FILES_${QT_BASE_NAME}-assistant = "${bindir}/*assistant* ${bindir}/qcollectiongenerator ${bindir}/qhelpconverter ${bindir}/qhelpgenerator"
160FILES_${QT_BASE_NAME}-assistant-dbg = "${bindir}/.debug/*assistant* ${bindir}/.debug/qcollectiongenerator ${bindir}/.debug/qhelpconverter ${bindir}/.debug/qhelpgenerator"
161FILES_${QT_BASE_NAME}-common = "${bindir}/qtconfig"
162FILES_${QT_BASE_NAME}-common-dbg = "${bindir}/.debug/qtconfig"
163FILES_${QT_BASE_NAME}-dbus = "${bindir}/qdbus ${bindir}/qdbusxml2cpp ${bindir}/qdbuscpp2xml ${bindir}/qdbusviewer"
164FILES_${QT_BASE_NAME}-dbus-dbg = "${bindir}/.debug/qdbus ${bindir}/.debug/qdbusxml2cpp ${bindir}/.debug/qdbuscpp2xml ${bindir}/.debug/qdbusviewer"
165FILES_${QT_BASE_NAME}-demos = "${bindir}/qtdemo* ${bindir}/${QT_DIR_NAME}/demos/*"
166FILES_${QT_BASE_NAME}-demos-staticdev = "${bindir}/${QT_DIR_NAME}/demos/shared/libdemo_shared.a"
167FILES_${QT_BASE_NAME}-demos-dbg = "${bindir}/.debug/qtdemo* ${bindir}/${QT_DIR_NAME}/demos/.debug/* ${bindir}/${QT_DIR_NAME}/demos/*/.debug ${bindir}/${QT_DIR_NAME}/demos/*/*/.debug ${bindir}/${QT_DIR_NAME}/demos/*/*/*/.debug"
168FILES_${QT_BASE_NAME}-designer = "${bindir}/*designer*"
169FILES_${QT_BASE_NAME}-designer-dbg = "${bindir}/.debug/*designer*"
170FILES_${QT_BASE_NAME}-examples = "${bindir}/${QT_DIR_NAME}/examples/*"
171FILES_${QT_BASE_NAME}-examples-staticdev = "${bindir}/${QT_DIR_NAME}/examples/tools/plugandpaint/plugins/libpnp_basictools.a"
172FILES_${QT_BASE_NAME}-examples-dbg = "${bindir}/${QT_DIR_NAME}/examples/.debug ${bindir}/${QT_DIR_NAME}/examples/*/.debug ${bindir}/${QT_DIR_NAME}/examples/*/*/.debug ${bindir}/${QT_DIR_NAME}/examples/*/*/*/.debug ${bindir}/${QT_DIR_NAME}/examples/*/*/*/*/.debug ${bindir}/${QT_DIR_NAME}/examples/declarative/*/*/*/*/*/.debug/* ${bindir}/${QT_DIR_NAME}/examples/declarative/*/*/*/*/.debug/*"
173FILES_${QT_BASE_NAME}-linguist = "${bindir}/*linguist* ${bindir}/lrelease ${bindir}/lupdate ${bindir}/lconvert ${bindir}/qm2ts"
174FILES_${QT_BASE_NAME}-linguist-dbg = "${bindir}/.debug/*linguist* ${bindir}/.debug/lrelease ${bindir}/.debug/lupdate ${bindir}/.debug/lconvert ${bindir}/.debug/qm2ts"
175FILES_${QT_BASE_NAME}-pixeltool = "${bindir}/pixeltool"
176FILES_${QT_BASE_NAME}-pixeltool-dbg = "${bindir}/.debug/pixeltool"
177FILES_${QT_BASE_NAME}-qt3to4 = "${bindir}/qt3to4 ${datadir}/${QT_DIR_NAME}/q3porting.xml"
178FILES_${QT_BASE_NAME}-qt3to4-dbg = "${bindir}/.debug/qt3to4"
179FILES_${QT_BASE_NAME}-qmlviewer = "${bindir}/qmlviewer"
180FILES_${QT_BASE_NAME}-qmlviewer-dbg = "${bindir}/.debug/qmlviewer"
181FILES_${QT_BASE_NAME}-makeqpf = "${bindir}/makeqpf"
182FILES_${QT_BASE_NAME}-makeqpf-dbg = "${bindir}/.debug/makeqpf"
183FILES_${QT_BASE_NAME}-mkspecs = "${datadir}/${QT_DIR_NAME}/mkspecs/* ${datadir}/${QT_DIR_NAME}/environment-setup"
184FILES_${QT_BASE_NAME}-xmlpatterns = "${bindir}/xmlpatterns*"
185FILES_${QT_BASE_NAME}-xmlpatterns-dbg = "${bindir}/.debug/xmlpatterns*"
186FILES_${QT_BASE_NAME}-qml-plugins = "${libdir}/${QT_DIR_NAME}/imports/* ${libdir}/${QT_DIR_NAME}/plugins/qmltooling/*"
187FILES_${QT_BASE_NAME}-qml-plugins-dbg = "${libdir}/${QT_DIR_NAME}/imports/*/*/*/.debug/* ${libdir}/${QT_DIR_NAME}/imports/*/.debug ${libdir}/${QT_DIR_NAME}/plugins/qmltooling/.debug"
188INSANE_SKIP_${MLPREFIX}${QT_BASE_NAME}-examples += "libdir"
189INSANE_SKIP_${MLPREFIX}${QT_BASE_NAME}-examples-dbg += "libdir"
190
191# License options, to be set by the recipe if different values are needed
192QT_LICENSE_FILE ?= ""
193QT_LICENSE_FLAGS ?= "-opensource"
194
195do_configure() {
196 unset QMAKESPEC
197 unset QTDIR
198
199 set_arch
200 set_endian
201
202 if [ ! -e bin/qmake ]; then
203 ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
204 fi
205
206 if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
207 ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
208 fi
209
210 if [ -f mkspecs/common/g++-unix.conf ] ; then
211 # mkspecs were refactored for 4.8.0
212 cp -f ${WORKDIR}/g++.conf mkspecs/common/g++-unix.conf
213 else
214 cp -f ${WORKDIR}/g++.conf mkspecs/common/g++.conf
215 fi
216 cp -f ${WORKDIR}/linux.conf mkspecs/common/
217
218 echo "[Paths]" > $QT_CONF_PATH
219 echo "Prefix=${prefix}" >> $QT_CONF_PATH
220 echo "Documentation=${docdir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
221 echo "Headers=${includedir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
222 echo "Libraries=${libdir}" >> $QT_CONF_PATH
223 echo "Binaries=${bindir}" >> $QT_CONF_PATH
224 echo "Plugins=${libdir}/${QT_DIR_NAME}/plugins" >> $QT_CONF_PATH
225 echo "Imports=${libdir}/${QT_DIR_NAME}/imports" >> $QT_CONF_PATH
226 echo "Data=${datadir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
227 echo "Translations=${datadir}/${QT_DIR_NAME}/translations" >> $QT_CONF_PATH
228 echo "Settings=${sysconfdir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
229 echo "Examples=${bindir}/${QT_DIR_NAME}/examples" >> $QT_CONF_PATH
230 echo "Demos=${bindir}/${QT_DIR_NAME}/demos" >> $QT_CONF_PATH
231
232 ${EXTRA_QMAKE_MUNGE}|| true
233
234 echo yes | QT_LICENSE_FILE="${QT_LICENSE_FILE}" ./configure -v \
235 -prefix ${prefix} \
236 -bindir ${bindir} \
237 -libdir ${libdir} \
238 -datadir ${datadir}/${QT_DIR_NAME} \
239 -sysconfdir ${sysconfdir}/${QT_DIR_NAME} \
240 -docdir ${docdir}/${QT_DIR_NAME} \
241 -headerdir ${includedir}/${QT_DIR_NAME} \
242 -plugindir ${libdir}/${QT_DIR_NAME}/plugins \
243 -importdir ${libdir}/${QT_DIR_NAME}/imports \
244 -translationdir ${datadir}/${QT_DIR_NAME}/translations \
245 -examplesdir ${bindir}/${QT_DIR_NAME}/examples \
246 -demosdir ${bindir}/${QT_DIR_NAME}/demos \
247 -platform ${TARGET_OS}-oe-g++ \
248 -xplatform ${TARGET_OS}-oe-g++ \
249 ${QT_ENDIAN} \
250 -crossarch ${QT_ARCH} \
251 ${QT_LICENSE_FLAGS} \
252 ${QT_CONFIG_FLAGS} -no-fast \
253 -L${STAGING_LIBDIR} -I${STAGING_INCDIR} \
254 -I${STAGING_INCDIR}/freetype2
255}
256
257do_compile() {
258 # Fixup missing wsegl header in some SGX SDKs
259 if ! [ -e ${STAGING_INCDIR}/wsegl.h ] ; then
260 cp src/3rdparty/powervr/wsegl.h src/plugins/gfxdrivers/powervr/QWSWSEGL/
261 fi
262
263 unset CFLAGS CXXFLAGS
264
265 oe_runmake ${EXTRA_ENV}
266
267 # Build target qmake
268 export QMAKESPEC="${S}/mkspecs/${TARGET_OS}-oe-g++"
269 cd ${S}/qmake
270 ${OE_QMAKE_QMAKE}
271 oe_runmake CC="${CC}" CXX="${CXX}"
272 cd ${S}
273}
274
275python populate_packages_prepend() {
276 translation_dir = d.expand('${datadir}/${QT_DIR_NAME}/translations/')
277 translation_name = d.expand('${QT_BASE_NAME}-translation-%s')
278 do_split_packages(d, translation_dir, '^(assistant|designer|linguist|qt|qtconfig|qvfb)_(.*)\.qm$', translation_name, '${PN} translation for %s', extra_depends='' )
279
280 phrasebook_dir = d.expand('${datadir}/${QT_DIR_NAME}/phrasebooks/')
281 phrasebook_name = d.expand('${QT_BASE_NAME}-phrasebook-%s')
282
283 if os.path.exists("%s%s" % (d.expand('${D}'), phrasebook_dir)):
284 do_split_packages(d, phrasebook_dir, '^(.*)\.qph$', phrasebook_name, '${PN} phrasebook for %s', extra_depends='' )
285 else:
286 bb.note("The path does not exist:", d.expand('${D}'), phrasebook_dir)
287
288 # Package all the plugins and their -dbg version and create a meta package
289 def qtopia_split(path, name, glob):
290 """
291 Split the package into a normal and -dbg package and then add the
292 new packages to the meta package.
293 """
294 plugin_dir = d.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/' % path)
295 if not os.path.exists("%s%s" % (d.expand('${D}'), plugin_dir)):
296 bb.note("The path does not exist:", d.expand('${D}'), plugin_dir)
297 return
298
299 plugin_name = d.expand('${QT_BASE_NAME}-plugin-%s-%%s' % name)
300 dev_packages = []
301 dev_hook = lambda file,pkg,b,c,d:dev_packages.append((file,pkg))
302 do_split_packages(d, plugin_dir, glob, plugin_name, '${PN} %s for %%s' % name, extra_depends='', hook=dev_hook)
303 # Create a -dbg package as well
304 plugin_dir_dbg = d.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/.debug' % path)
305 packages = d.getVar('PACKAGES')
306 for (file,package) in dev_packages:
307 packages = "%s %s-dbg" % (packages, package)
308 file_name = os.path.join(plugin_dir_dbg, os.path.basename(file))
309 d.setVar("FILES_%s-dbg" % package, file_name)
310 d.setVar("DESCRIPTION_%s-dbg" % package, "${PN} %s for %s" % (name, package))
311
312 d.setVar('PACKAGES', packages)
313
314 qtopia_split('accessible', 'accessible', '^libq(.*)\.so$')
315 qtopia_split('codecs', 'codec', '^libq(.*)\.so$')
316 qtopia_split('decorations', 'decoration', '^libqdecoration(.*)\.so$')
317 qtopia_split('designer', 'designer', '^lib(.*)\.so$')
318 qtopia_split('gfxdrivers', 'gfxdriver', '^libq(.*)\.so$')
319 qtopia_split('graphicssystems','graphicssystems', '^libq(.*)\.so$')
320 qtopia_split('kbddrivers', 'kbddriver', '^libq(.*)kbddriver\.so$')
321 qtopia_split('mousedrivers', 'mousedriver', '^libq(.*)mousedriver\.so$')
322 qtopia_split('iconengines', 'iconengine', '^libq(.*)\.so$')
323 qtopia_split('imageformats', 'imageformat', '^libq(.*)\.so$')
324 qtopia_split('inputmethods', 'inputmethod', '^libq(.*)\.so$')
325 qtopia_split('sqldrivers', 'sqldriver', '^libq(.*)\.so$')
326 qtopia_split('script', 'script', '^libqtscript(.*)\.so$')
327 qtopia_split('styles', 'style', '^libq(.*)\.so$')
328 qtopia_split('phonon_backend','phonon-backend','^libphonon_(.*)\.so$')
329 qtopia_split('bearer', 'bearer', '^libq(.*)bearer\.so$')
330}
331
332do_install() {
333 oe_runmake install INSTALL_ROOT=${D}
334
335 # Install a proper target version of qmake
336 rm ${D}/${bindir}/qmake
337 install -m 0755 bin/qmake2 ${D}${bindir}/qmake
338
339 # fix pkgconfig, libtool and prl files
340 sed -i -e 's#-L${S}/lib/\?##g' \
341 -e 's#-L${STAGING_LIBDIR}/\?##g' \
342 -e 's#STAGING_LIBDIR}#libdir}'#g \
343 -e 's#-L${libdir}/\?##g' \
344 -e s#'$(OE_QMAKE_LIBS_X11)'#"${OE_QMAKE_LIBS_X11}"#g \
345 -e 's#" -Wl,-rpath-link,${S}/lib/\?"##g' \
346 -e 's#" -Wl,-rpath-link,${libdir}/\?"##g' \
347 -e 's#Iin#I${in#g' \
348 -e 's#-L\.\./\.\./WebCore/release\s\+-L\.\./\.\./JavaScriptCore/release\s\+-lwebcore##g' \
349 -e 's#-ljscore##g' \
350 ${D}${libdir}/*.la ${D}${libdir}/*.prl ${D}${libdir}/pkgconfig/*.pc
351
352 sed -i -e s#" -Wl,-rpath-link,${S}/lib"##g \
353 ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/linux.conf
354
355 # fix pkgconfig files
356 sed -i -e s#"moc_location=.*$"#"moc_location=${bindir}/moc4"# \
357 -e s#"uic_location=.*$"#"uic_location=${bindir}/uic4"# \
358 ${D}${libdir}/pkgconfig/*.pc
359 for name in ${QT_LIB_NAMES}; do
360 sed -i -e /Requires/s#"${name}"#"${name}${QT_LIBINFIX}"#g ${D}${libdir}/pkgconfig/*.pc
361 done
362
363 # QT abuses $includedir to point to its headers, which breaks pkgconfig sysroot, so manually fix it up here:
364 for pc in ${D}${libdir}/pkgconfig/*.pc ; do
365 sed -i -e "s:prefix}/include/${QT_DIR_NAME}/$(basename $pc .pc):prefix}/include:" \
366 -e 's:IP{:I${:g' $pc
367 done
368
369 #Append an E to the qtdemo file
370 if [ -n "${QT_LIBINFIX}" ] ; then
371 [ -f ${D}${bindir}/qtdemo ] && mv ${D}${bindir}/qtdemo ${D}${bindir}/qtdemo${QT_LIBINFIX}
372 fi
373
374 script="${D}/${datadir}/${QT_DIR_NAME}/environment-setup"
375 touch $script
376 echo 'export QT_DIR_NAME=${QT_DIR_NAME}' >> $script
377 echo 'export QT_LIBINFIX=${QT_LIBINFIX}' >> $script
378 echo 'export OE_QMAKE_AR=ar' >> $script
379 echo 'export OE_QMAKE_CC=gcc' >> $script
380 echo 'export OE_QMAKE_CXX=g++' >> $script
381 echo 'export OE_QMAKE_LINK=g++' >> $script
382 echo 'export OE_QMAKE_LIBDIR_QT=${libdir}' >> $script
383 echo 'export OE_QMAKE_INCDIR_QT=${includedir}/${QT_DIR_NAME}' >> $script
384 echo 'export OE_QMAKE_MOC=${bindir}/moc' >> $script
385 echo 'export OE_QMAKE_UIC=${bindir}/uic' >> $script
386 echo 'export OE_QMAKE_UIC3=${bindir}/uic3' >> $script
387 echo 'export OE_QMAKE_RCC=${bindir}/rcc' >> $script
388 echo 'export OE_QMAKE_QDBUSCPP2XML=${bindir}/qdbuscpp2xml' >> $script
389 echo 'export OE_QMAKE_QDBUSXML2CPP=${bindir}/qdbusxml2cpp' >> $script
390 echo 'export OE_QMAKE_QT_CONFIG=${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
391 echo 'export QMAKESPEC=${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
392 chmod 0755 $script
393}