[oe-commits] org.oe.dev packages/qte/qtopia-core: Add QtopiaCore version 4.3.1

freyther commit openembedded-commits at lists.openembedded.org
Mon Sep 3 16:04:27 UTC 2007


packages/qte/qtopia-core: Add QtopiaCore version 4.3.1

Author: freyther at openembedded.org
Branch: org.openembedded.dev
Revision: 4555b83676548b582aa0de6d3044695b80b744fe
ViewMTN: http://monotone.openembedded.org/revision.psp?id=4555b83676548b582aa0de6d3044695b80b744fe
Files:
1
packages/qte/qtopia-core_4.3.1.bb
Diffs:

#
# mt diff -r2d05a6d4c8545b71cddf93011420891bf70fb47e -r4555b83676548b582aa0de6d3044695b80b744fe
#
# 
# 
# add_file "packages/qte/qtopia-core_4.3.1.bb"
#  content [318931809588acb33cdc77b0acb027a9d326485c]
# 
============================================================
--- packages/qte/qtopia-core_4.3.1.bb	318931809588acb33cdc77b0acb027a9d326485c
+++ packages/qte/qtopia-core_4.3.1.bb	318931809588acb33cdc77b0acb027a9d326485c
@@ -0,0 +1,222 @@
+SUMMARY = "QtopiaCore"
+SECTION = "libs"
+LICENSE = "GPL"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.trolltech.com"
+DEPENDS = "freetype tslib"
+
+PR = "r1"
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/qtopia-core-opensource-src-${PV}.tar.gz \
+           file://linux-oe-qmake.conf"
+
+S = "${WORKDIR}/qtopia-core-opensource-src-${PV}"
+
+inherit pkgconfig
+
+# Qmake gets confused by environment variables, as it builds both HOST
+# and TARGET objects. The correct compiler settings come from the mkspec
+# and are set with the OE_QMAKE_ variables
+PARALLEL_MAKE = ""
+EXTRA_OEMAKE = " MAKEFLAGS= "
+
+# This stuff could also be done by inheriting qmake, but I didn't want to
+# bother with the qmake separation from the Qtopia configure. This separation
+# is probably nothing more than a patch on the configure and setting some
+# environment variables to use our own qmake/moc/uic, but that's something
+# to figure out later.
+export OE_QMAKE_CC="${CC}"
+export OE_QMAKE_CFLAGS="${CFLAGS}"
+export OE_QMAKE_CXX="${CXX}"
+export OE_QMAKE_CXXFLAGS="-fno-exceptions ${CXXFLAGS}"
+export OE_QMAKE_LDFLAGS="${LDFLAGS}"
+export OE_QMAKE_LINK="${CXX}"
+export OE_QMAKE_AR="${AR}"
+export OE_QMAKE_RANLIB="${RANLIB}"
+export OE_QMAKE_STRIP="echo"
+export OE_QMAKE_RPATH="-Wl,-rpath-link,"
+export OE_QMAKE_INCDIR_QT="${QTDIR}/include"
+export OE_QMAKE_LIBDIR_QT="${QTDIR}/lib"
+export OE_QMAKE_INCDIR_QTOPIA="${QTOPIADIR}/include"
+export OE_QMAKE_LIBDIR_QTOPIA="${QTOPIADIR}/lib"
+
+require qte-functions.inc
+QT_ARCH := "${@qte_arch(d)}"
+
+# FIXME use info.bbclass once it has been commited
+QT_ENDIAN = "-little-endian"
+
+# We don't build the examples and demos atm. They're quite big and not used
+# frequently, only for testing maybe. Feel free to change and to package
+# them separately.
+QT_CONFIG_FLAGS = "-release \
+    -no-cups -no-accessibility \
+    -nomake demos -nomake examples -nomake tools -reduce-relocations \
+    -qt-mouse-tslib -qt-gfx-transformed -embedded ${QT_ARCH}"
+
+do_configure() {
+    # Hack to honor our compiler flags
+    sed -i s/-O2//g ${S}/mkspecs/*/qmake.conf
+    sed -i s/-O2//g ${S}/mkspecs/*/*/qmake.conf
+
+
+    # Install the OE build templates (something which might be done
+    # by inheriting qmake)
+    for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++
+    do
+        install -d ${S}/mkspecs/$template
+        install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
+        ln -sf ../linux-g++/qplatformdefs.h ${S}/mkspecs/$template/qplatformdefs.h
+    done
+
+    # The Qmake Makefile generation doesn't like these environment
+    # variables, as they mess up the HOST tools builds
+    unset CC
+    unset CXX
+    unset CFLAGS
+    unset CXXFLAGS
+    unset LDFLAGS
+
+    # For rationale behind the installation locations, see remark above
+    echo yes | ./configure -v \
+        -prefix ${prefix} \
+        -bindir ${bindir} \
+        -libdir ${libdir} \
+        -docdir ${docdir}/qtopia \
+        -headerdir ${includedir} \
+        -plugindir ${datadir}/qtopia/plugins \
+        -datadir ${datadir} \
+        -translationdir ${datadir}/qtopia/translations \
+        -sysconfdir ${sysconfdir} \
+        -examplesdir ${bindir}/qtopia/examples \
+        -demosdir ${bindir}/qtopia/demos \
+        -embedded ${QT_ARCH} ${QT_ENDIAN} -fast \
+        -xplatform linux-oe-g++ \
+        ${QT_CONFIG_FLAGS} \
+        -L${STAGING_LIBDIR} -I${STAGING_INCDIR}
+}
+
+#
+# Fixup some pkgconfig files
+# moc_location=/home/zecke/gmit/dela_build/git/openembedded-gmit.zecke/build/oetmp/work/arm-oabi-angstrom-linux/qtopia-core-4.3.0-r2/qtopia-core-opensource-src-4.3.0/bin/moc
+# uic_location=/home/zecke/gmit/dela_build/git/openembedded-gmit.zecke/build/oetmp/work/arm-oabi-angstrom-linux/qtopia-core-4.3.0-r2/qtopia-core-opensource-src-4.3.0/bin/uic
+#
+# Libs: -L${libdir} -lQtNetwork -L/home/zecke/gmit/dela_build/git/openembedded-gmit.zecke/build/oetmp/staging/arm-angstrom-linux/lib -L/home/zecke/gmit/dela_build/git/openembedded-gmit.zecke/build/oetmp/work/arm-oabi-angstrom-linux/qtopia-core-4.3.0-r2/qtopia-core-opensource-src-4.3.0/lib  $(LIBS_EXTRA) -lQtCore -L/home/zecke/gmit/dela_build/git/openembedded-gmit.zecke/build/oetmp/staging/arm-angstrom-linux/lib -L/home/zecke/gmit/dela_build/git/openembedded-gmit.zecke/build/oetmp/work/arm-oabi-angstrom-linux/qtopia-core-4.3.0-r2/qtopia-core-opensource-src-4.3.0/lib -lm -lrt -lpthread -ldl
+#
+do_compile_append() {
+    cd ${S}/lib/pkgconfig
+    sed -i s#"-L${S}/lib"##g *.pc
+    sed -i s#"moc_location=${S}/bin/moc"#moc_location=${STAGING_BINDIR}/moc4# *.pc
+    sed -i s#"uic_location=${S}/bin/uic"#uic_location=${STAGING_BINDIR}/uic4# *.pc
+}
+
+do_stage_append() {
+    echo "Fixing up Qt"
+    cd ${STAGING_LIBDIR}/pkgconfig
+    sed -i s#"-L${S}/lib"##g Qt*.pc
+    sed -i s#"moc_location=${S}/bin/moc"#moc_location=${STAGING_BINDIR}/moc4# Qt*.pc
+    sed -i s#"uic_location=${S}/bin/uic"#uic_location=${STAGING_BINDIR}/uic4# Qt*.pc
+}
+
+do_install() {
+    oe_runmake install INSTALL_ROOT=${D}
+
+    # These are host binaries, we should only use them in staging
+    rm -rf ${D}/${bindir}
+    rm -rf ${D}/${datadir}/mkspecs
+        
+    touch ${D}/${libdir}/fonts/fontdir
+}
+
+# We might want to package all the libraries separately, so you can really
+# fine-tune what to install. This is e.g. done in qt4-x11-free_4.1.2.bb.
+# What should these packages be called? I'm tempted to call them the same
+# as in qt4 version, as the API is supposed to be compatible, e.g.
+# libqtcore4 and libqtgui4. This will however conflict if you have QT and
+# Qtopia, but this is something you don't want anyway, I guess.
+# Another solution is making virtual/libqtfoo4, and DEPENDing on that one
+# and let both the PACKAGES in QT and Qtopia PROVIDE these. The packages
+# themselves could then be called libqtopiafoo4.
+# I'll postpone this discussion by not making separate Qtopia packages.
+
+# Also, I don't package the plugins and translations atm, I don't use them
+# and I don't feel like thinking about a sensible separation.
+
+PACKAGES =+ " libqtcore libqtcore-dev libqtcore-dbg \
+              libqtxml libqtxml-dev libqtxml-dbg \
+              libqtgui libqtgui-dev libqtgui-dbg \
+              libqtsql libqtsql-dev libqtsql-dbg \
+              libqtnetwork libqtnetwork-dev libqtnetwork-dbg \
+              libqtsvg libqtsvg-dev libqtsvg-dbg \
+              libqt3support libqt3support-dev libqt3support-dbg \
+              qtopia-core-plugins qtopia-core-plugins-dbg \
+              libqtscript libqtscript-dev libqtscript-dbg \
+              "
+
+PACKAGES += " ${PN}-fonts "
+
+# The default included fonts are around 75MB and consist of a number of
+# FreeType-renderable fonts as well as QPF (Qtopia Prerendered Fonts).
+# As FreeType is generally slow on embedded platforms, and 75MB is
+# quite huge, we downsize the fonts dir in the do_install. I've decided
+# to include only the QPF (Helvetica and Fixed), amounting to 500KB. This
+# also results in tremendously faster application startup time.
+FILES_libqtcore += " ${libdir}/fonts/helvetic* ${libdir}/fonts/fixed* ${D}/${libdir}/fonts/fontdir"
+FILES_${PN}-fonts = "${libdir}/fonts"
+
+FILES_qtopia-core-plugins += "${datadir}/qtopia/plugins/*/*.so"
+FILES_qtopia-core-plugins-dbg += "${datadir}/qtopia/plugins/*/.debug/*.so"
+
+FILES_libqtcore += "${libdir}/libQtCore.so.*"
+FILES_libqtxml += "${libdir}/libQtXml.so.*"
+FILES_libqtgui += "${libdir}/libQtGui.so.*"
+FILES_libqtsql += "${libdir}/libQtSql.so.*"
+FILES_libqtnetwork += "${libdir}/libQtNetwork.so.*"
+FILES_libqtsvg += "${libdir}/libQtSvg.so.*"
+FILES_libqt3support += "${libdir}/libQt3Support.so.*"
+FILES_libqtscript += "${libdir}/libQtScript.so.*"
+
+FILES_libqtcore-dev += "${libdir}/*QtCore.*"
+FILES_libqtxml-dev += "${libdir}/*QtXml.*"
+FILES_libqtgui-dev += "${libdir}/*QtGui.*"
+FILES_libqtsql-dev += "${libdir}/*QtSql.*"
+FILES_libqtnetwork-dev += "${libdir}/*QtNetwork.*"
+FILES_libqtsvg-dev += "${libdir}/*QtSvg.*"
+FILES_libqt3support-dev += "${libdir}/*Qt3Support.*"
+FILES_libqtscript-dev += "${libdir}/*QtScript.*"
+
+FILES_libqtcore-dbg += "${libdir}/.debug/libQtCore*"
+FILES_libqtxml-dbg += "${libdir}/.debug/libQtXml*"
+FILES_libqtgui-dbg += "${libdir}/.debug/libQtGui*"
+FILES_libqtsql-dbg += "${libdir}/.debug/libQtSql*"
+FILES_libqtnetwork-dbg += "${libdir}/.debug/libQtNetwork*"
+FILES_libqtsvg-dbg += "${libdir}/.debug/libQtSvg*"
+FILES_libqt3support-dbg += "${libdir}/.debug/libQt3Support*"
+FILES_libqtscript-dbg += "${libdir}/.debug/libQtScript*"
+
+
+python populate_packages_prepend() {
+	translationdir = bb.data.expand('${datadir}/qtopia/translations/', d)
+	do_split_packages(d, translationdir, '^qt_(.*)\.qm$', 'qtopia-translation-%s', 'Qtopia translation for %s', extra_depends='' )
+}
+
+
+
+STAGE_TEMP = "${WORKDIR}/temp-staging"
+do_stage() {
+    rm -rf ${STAGE_TEMP}
+    mkdir -p ${STAGE_TEMP}
+    oe_runmake install INSTALL_ROOT=${STAGE_TEMP}
+
+    install -d ${STAGING_INCDIR}/qtopiacore4
+    install -d ${STAGING_LIBDIR}/qtopiacore4
+    cp -af ${STAGE_TEMP}/$includedir/* ${STAGING_INCDIR}/qtopiacore4/
+
+    for i in ${STAGE_TEMP}/${libdir}/*.la
+    do
+        oe_libinstall -C ${STAGE_TEMP}/${libdir} -so $(basename $i .la) ${STAGING_LIBDIR}/qtopiacore4
+    done
+
+    rm -rf ${STAGE_TEMP}
+}
+






More information about the Openembedded-commits mailing list