Qtopia/X11: Install the right Qtopia XSession start script as well
[vuplus_openembedded] / packages / qt4 / qt_packaging.inc
1 NONDEV_PACKAGES += "${QT_BASE_LIB}core4 ${QT_BASE_LIB}gui4 ${QT_BASE_LIB}network4  \
2              ${QT_BASE_LIB}sql4 ${QT_BASE_LIB}svg4 ${QT_BASE_LIB}test4 ${QT_BASE_LIB}xml4 \
3              ${QT_BASE_LIB}designer4 ${QT_BASE_LIB}designercomponents4 \
4              ${QT_BASE_LIB}3support4 ${QT_BASE_LIB}assistantclient4 ${QT_BASE_LIB}script4 \
5              ${QT_BASE_LIB}dbus4 ${QT_BASE_LIB}opengl4 \
6              ${QT_BASE_NAME}-assistant ${QT_BASE_NAME}-common \
7              ${QT_BASE_NAME}-designer \
8              ${QT_BASE_NAME}-demos ${QT_BASE_NAME}-examples \
9              ${QT_BASE_NAME}-linguist \
10              ${QT_BASE_NAME}-pixeltool ${QT_BASE_NAME}-dbus \
11              ${QT_BASE_NAME}-fonts "
12
13 DEV_PACKAGES += "${QT_BASE_LIB}core4-dev \
14              ${QT_BASE_LIB}gui4-dev \
15              ${QT_BASE_LIB}network4-dev \
16              ${QT_BASE_LIB}sql4-dev \
17              ${QT_BASE_LIB}svg4-dev \
18              ${QT_BASE_LIB}test4-dev \
19              ${QT_BASE_LIB}xml4-dev \
20              ${QT_BASE_LIB}designer4-dev \
21              ${QT_BASE_LIB}designercomponents4-dev \
22              ${QT_BASE_LIB}3support4-dev \
23              ${QT_BASE_LIB}assistantclient4-dev \
24              ${QT_BASE_LIB}script4-dev \
25              ${QT_BASE_LIB}dbus4-dev \
26              ${QT_BASE_LIB}opengl4-dev \
27              ${QT_BASE_LIB}uitools4-dev"
28
29 DBG_PACKAGES += "${QT_BASE_LIB}core4-dbg \
30              ${QT_BASE_LIB}gui4-dbg \
31              ${QT_BASE_LIB}network4-dbg \
32              ${QT_BASE_LIB}sql4-dbg \
33              ${QT_BASE_LIB}svg4-dbg \
34              ${QT_BASE_LIB}test4-dbg \
35              ${QT_BASE_LIB}xml4-dbg \
36              ${QT_BASE_LIB}designer4-dbg \
37              ${QT_BASE_LIB}designercomponents4-dbg \
38              ${QT_BASE_LIB}3support4-dbg \
39              ${QT_BASE_LIB}assistantclient4-dbg \
40              ${QT_BASE_LIB}script4-dbg \
41              ${QT_BASE_LIB}dbus4-dbg \
42              ${QT_BASE_LIB}opengl4-dbg"
43
44
45 PACKAGES += "${DEV_PACKAGES} ${NONDEV_PACKAGES} ${DBG_PACKAGES}"
46
47 ALLOW_EMPTY_${PN} = "1"
48 FILES_${PN}     = ""
49 FILES_${PN}-dev = " ${includedir}/${QT_DIR_NAME}/Qt/*"
50 FILES_${PN}-dbg = "${bindir}/*/.debug "
51 RDEPENDS_${PN} = "${NONDEV_PACKAGES}"
52 RDEPENDS_${PN}-dev = "${DEV_PACKAGES}"
53 RDEPENDS_${PN}-dbg = "${DBG_PACKAGES}"
54
55 def qt_default_dev(name):
56     return """${libdir}/libQt%(name)s${QT_LIBINFIX}.la
57               ${libdir}/libQt%(name)s${QT_LIBINFIX}.prl
58               ${libdir}/libQt%(name)s${QT_LIBINFIX}.so
59               ${includedir}/${QT_DIR_NAME}/Qt%(name)s*
60               ${libdir}/pkgconfig/Qt%(name)s${QT_LIBINFIX}.pc""" % locals()
61
62
63 FILES_${QT_BASE_LIB}core4                   = "${libdir}/libQtCore${QT_LIBINFIX}.so.*"
64 FILES_${QT_BASE_LIB}core4-dev               = "${@qt_default_dev('Core')}"
65 FILES_${QT_BASE_LIB}core4-dbg               = "${libdir}/.debug/libQtCore*"
66 FILES_${QT_BASE_LIB}gui4                    = "${libdir}/libQtGui${QT_LIBINFIX}.so.*"
67 FILES_${QT_BASE_LIB}gui4-dev                = "${@qt_default_dev('Gui')}"
68 FILES_${QT_BASE_LIB}gui4-dbg                = "${libdir}/.debug/libQtGui*"
69 FILES_${QT_BASE_LIB}network4                = "${libdir}/libQtNetwork${QT_LIBINFIX}.so.*"
70 FILES_${QT_BASE_LIB}network4-dev            = "${@qt_default_dev('Network')}"
71 FILES_${QT_BASE_LIB}network4-dbg            = "${libdir}/.debug/libQtNetwork${QT_LIBINFIX}*"
72 FILES_${QT_BASE_LIB}sql4                    = "${libdir}/libQtSql${QT_LIBINFIX}.so.*"
73 FILES_${QT_BASE_LIB}sql4-dev                = "${@qt_default_dev('Sql')}"
74 FILES_${QT_BASE_LIB}sql4-dbg                = "${libdir}/.debug/libQtSql*"
75 FILES_${QT_BASE_LIB}svg4                    = "${libdir}/libQtSvg${QT_LIBINFIX}.so.*"
76 FILES_${QT_BASE_LIB}svg4-dev                = "${@qt_default_dev('Svg')}"
77 FILES_${QT_BASE_LIB}svg4-dbg                = "${libdir}/.debug/libQtSvg*"
78 FILES_${QT_BASE_LIB}test4                   = "${libdir}/libQtTest${QT_LIBINFIX}.so.*"
79 FILES_${QT_BASE_LIB}test4-dev               = "${@qt_default_dev('Test')}"
80 FILES_${QT_BASE_LIB}test4-dbg               = "${libdir}/.debug/libQtTest*"
81 FILES_${QT_BASE_LIB}xml4                    = "${libdir}/libQtXml${QT_LIBINFIX}.so.*"
82 FILES_${QT_BASE_LIB}xml4-dev                = "${@qt_default_dev('Xml')}"
83 FILES_${QT_BASE_LIB}xml4-dbg                = "${libdir}/.debug/libQtXml*"
84 FILES_${QT_BASE_LIB}designer4               = "${libdir}/libQtDesigner${QT_LIBINFIX}.so.*"
85 FILES_${QT_BASE_LIB}designer4-dev           = "${@qt_default_dev('Designer')}"
86 FILES_${QT_BASE_LIB}designer4-dbg           = "${libdir}/.debug/libQtDesigner*"
87 FILES_${QT_BASE_LIB}designercomponents4     = "${libdir}/libQtDesignerComponents${QT_LIBINFIX}.so.*"
88 FILES_${QT_BASE_LIB}designercomponents4-dev = "${@qt_default_dev('DesignerComponents')}"
89 FILES_${QT_BASE_LIB}designercomponents4-dbg = "${libdir}/.debug/libQtDesignerComponents*"
90 FILES_${QT_BASE_LIB}3support4               = "${libdir}/libQt3Support${QT_LIBINFIX}.so.*"
91 FILES_${QT_BASE_LIB}3support4-dev           = "${@qt_default_dev('3Support')}"
92 FILES_${QT_BASE_LIB}3support4-dbg           = "${libdir}/.debug/libQt3Support*"
93 FILES_${QT_BASE_LIB}assistantclient4        = "${libdir}/libQtAssistantClient${QT_LIBINFIX}.so.*"
94 FILES_${QT_BASE_LIB}assistantclient4-dev    = "${@qt_default_dev('AssistantClient')} ${includedir}/${QT_DIR_NAME}/QtAssistant*"
95 FILES_${QT_BASE_LIB}assistantclient4-dbg    = "${libdir}/.debug/libQtAssistantClient*"
96 FILES_${QT_BASE_LIB}script4                 = "${libdir}/libQtScript${QT_LIBINFIX}.so.*"
97 FILES_${QT_BASE_LIB}script4-dev             = "${@qt_default_dev('Script')}"
98 FILES_${QT_BASE_LIB}script4-dbg             = "${libdir}/.debug/libQtScript*"
99 FILES_${QT_BASE_LIB}dbus4                   = "${libdir}/libQtDBus${QT_LIBINFIX}.so.*"
100 FILES_${QT_BASE_LIB}dbus4-dev               = "${@qt_default_dev('DBus')}"
101 FILES_${QT_BASE_LIB}dbus4-dbg               = "${libdir}/.debug/libQtDBus*"
102 FILES_${QT_BASE_LIB}opengl4                 = "${libdir}/libQtOpenGL${QT_LIBINFIX}.so.*"
103 FILES_${QT_BASE_LIB}opengl4-dev             = "${@qt_default_dev('OpenGL')}"
104 FILES_${QT_BASE_LIB}opengl4-dbg             = "${libdir}/.debug/libQtOpenGL*"
105 FILES_${QT_BASE_LIB}uitools4-dev            = "${libdir}/libQtUiTools* ${includedir}/${QT_DIR_NAME}/QtUiTools* ${libdir}/pkgconfig/QtUiTools${QT_LIBINFIX}.pc"
106
107
108 FILES_${QT_BASE_NAME}-assistant            = "${bindir}/*assistant*"
109 FILES_${QT_BASE_NAME}-designer             = "${bindir}/*designer*"
110 FILES_${QT_BASE_NAME}-linguist             = "${bindir}/*linguist* ${bindir}/lrelease ${bindir}/lupdate ${bindir}/qm2ts"
111 FILES_${QT_BASE_NAME}-pixeltool            = "${bindir}/pixeltool"
112 FILES_${QT_BASE_NAME}-dbus                 = "${bindir}/qdbus ${bindir}/qdbusxml2cpp ${bindir}/qdbuscpp2xml ${bindir}/qdbusviewer"
113
114 FILES_${QT_BASE_NAME}-common               = "${bindir}/qtconfig"
115 FILES_${QT_BASE_NAME}-examples             = "${bindir}/${QT_DIR_NAME}/examples/*"
116 FILES_${QT_BASE_NAME}-demos                = "${bindir}/qtdemo ${bindir}/${QT_DIR_NAME}/demos/*"
117
118 FILES_${QT_BASE_NAME}-fonts                = "${libdir}/fonts"
119
120 python populate_packages_prepend() {
121         translation_dir = bb.data.expand('${datadir}/${QT_DIR_NAME}/translations/', d)
122         translation_name = bb.data.expand('${QT_BASE_NAME}-translation-%s', d)
123         do_split_packages(d, translation_dir, '^qt_(.*)\.qm$', translation_name, '{PN} translation for %s', extra_depends='' )
124
125         phrasebook_dir = bb.data.expand('${datadir}/${QT_DIR_NAME}/phrasebooks/', d)
126         phrasebook_name = bb.data.expand('${QT_BASE_NAME}-phrasebook-%s', d)
127         do_split_packages(d, phrasebook_dir, '^(.*)\.qph$', phrasebook_name, '{PN} phrasebook for %s', extra_depends='' )
128
129         # Package all the plugins and their -dbg version and create a meta package
130         import os
131         def qtopia_split(path, name, glob):
132             """
133             Split the package into a normal and -dbg package and then add the
134             new packages to the meta package.
135             """
136             plugin_dir     = bb.data.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/' % path, d)
137             if not os.path.exists("%s%s" % (bb.data.expand('${D}',d), plugin_dir)):
138                 bb.note("The path does not exist:", bb.data.expand('${D}', d), plugin_dir)
139                 return
140
141             plugin_name    = bb.data.expand('${QT_BASE_NAME}-plugin-%s-%%s' % name, d)
142             dev_packages = []
143             dev_hook = lambda file,pkg,b,c,d:dev_packages.append((file,pkg))
144             do_split_packages(d, plugin_dir,     glob, plugin_name,     '{PN} %s for %%s' % name, extra_depends='', hook=dev_hook)
145             # Create a -dbg package as well
146             plugin_dir_dbg     = bb.data.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/.debug' % path, d)
147             packages = bb.data.getVar('PACKAGES',d)
148             for (file,package) in dev_packages:
149                 packages = "%s %s-dbg" % (packages, package)
150                 file_name = os.path.join(plugin_dir_dbg, os.path.basename(file))
151                 bb.data.setVar("FILES_%s-dbg" % package, file_name, d)
152                 bb.data.setVar("DESCRIPTION_%s-dbg" % package, "{PN} %s for %s" % (name, package), d) 
153
154             bb.data.setVar('PACKAGES', packages, d)
155
156         qtopia_split('accessible',  'accessible',  '^libq(.*)\.so$')
157         qtopia_split('codecs',      'codec',       '^libq(.*)\.so$')
158         qtopia_split('decorations', 'decoration',  '^libqdecoration(.*)\.so$')
159         qtopia_split('designer',    'designer',    '^lib(.*)\.so$')
160         qtopia_split('gfxdrivers',  'gfxdriver',   '^libqgfx(.*)\.so$')
161         qtopia_split('mousedrivers','mousedriver', '^libq(.*)mousedriver\.so$')
162         qtopia_split('iconengines', 'iconengine',  '^libq(.*)\.so$')
163         qtopia_split('imageformats','imageformat', '^libq(.*)\.so$')
164         qtopia_split('inputmethods','inputmethod', '^libq(.*)\.so$')
165         qtopia_split('sqldrivers',  'sqldriver',   '^libq(.*)\.so$')
166         qtopia_split('styles',      'style',       '^libq(.*)\.so$')
167 }
168
169
170 do_install() {
171     oe_runmake install INSTALL_ROOT=${D}
172
173     # These are host binaries, we should only use them in staging
174     rm -rf ${D}/${bindir}/qmake
175
176     # XXX, FIXME, TODO: package the demos and examples properly
177     rm -rf ${D}/${bindir}/${QT_DIR_NAME}
178     rm -rf ${D}/${datadir}/${QT_DIR_NAME}/mkspecs
179
180     install -d ${D}/${libdir}/fonts
181     touch ${D}/${libdir}/fonts/fontdir
182 }