qt4.inc 19 KB

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