755510cc7d82a8a94ef4b04538a21c3899427729
[openembedded.git] / packages / qt / qt4-x11-free_4.1.1.bb
1 DESCRIPTION = "Qt/X11 Version ${PV}"
2 SECTION = "x11/libs"
3 PRIORITY = "optional"
4 HOMEPAGE = "http://www.trolltech.com"
5 LICENSE = "GPL QPL"
6 MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>"
7 DEPENDS = "uicmoc4-native qmake2-native freetype jpeg libx11 xft libxext libxrender libxrandr libxcursor"
8 PROVIDES = "qt4x11"
9 PR = "r4"
10
11 SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-${PV}.tar.gz \
12            file://cross-compile.patch;patch=1 \
13            file://fix-resinit-declaration.patch;patch=1 \
14            file://no-tools.patch;patch=1 \
15            file://no-qmake.patch;patch=1 \
16            file://gcc4_1.patch;patch=1 \
17            file://configurable-cpu-extensions.patch;patch=1 \
18            file://fix-mkspecs.patch;patch=1"
19 S = "${WORKDIR}/qt-x11-opensource-src-${PV}"
20
21 PARALLEL_MAKE = ""
22
23 inherit qmake-base qt4x11 pkgconfig
24
25 export QTDIR = "${S}"
26 STAGING_QT_DIR = "${STAGING_DIR}/${TARGET_SYS}/qt4"
27 export ARCH = "${TARGET_ARCH}"
28 export ARCH_i686 = "x86"
29 EXTRA_OEMAKE = "-e"
30
31 # FIXME:
32 # * add missing options
33 # * auto stl detection is broken, so we disable it
34 QT_CONFIG_FLAGS = "-release -shared -qt-zlib -system-libjpeg -no-nas-sound -no-sm -no-libmng -qt-libpng -no-gif -no-xinerama \
35                    -no-tablet -no-xkb -no-nis -no-cups -no-opengl \
36                    -nosse \
37                    -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 \
38                    -verbose -no-stl -no-accessibility"
39
40 EXTRA_ENV = 'QMAKE="${STAGING_BINDIR}/qmake2 -after DEFINES+=QT_NO_XIM INCPATH+=${STAGING_INCDIR} \
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}/moc4" UIC="${STAGING_BINDIR}/uic4" MAKE="make -e"'
45
46 do_configure() {
47         echo "DEFINES -= QT_NO_CAST_TO_ASCII" >>src/qbase.pri
48         echo "DEFINES += QT_NO_XIM" >>src/qbase.pri
49         unset QMAKESPEC
50         #export QMAKESPEC="linux-oe-g++"
51         ln -sf ${STAGING_BINDIR}/qmake2 bin/qmake
52         #rm -rf ./mkspecs
53         #ln -sf ${QMAKE_MKSPEC_PATH} ./mkspecs
54         echo yes | ./configure -prefix / -platform ${TARGET_OS}-g++ -crossarch ${ARCH} ${QT_CONFIG_FLAGS} -fast \
55                 -L${STAGING_LIBDIR} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/freetype2 -I${STAGING_INCDIR}/mysql
56 }
57
58 # FIXME: Might want to compile the cross tools for the -dev packages as well...
59 do_compile() {
60         unset CFLAGS CXXFLAGS
61         install -m 0755 ${STAGING_BINDIR}/rcc4 ${S}/bin/rcc
62         install -m 0755 ${STAGING_BINDIR}/moc4 ${S}/bin/moc
63         install -m 0755 ${STAGING_BINDIR}/uic4 ${S}/bin/uic
64
65         oe_runmake ${EXTRA_ENV}
66 }
67
68 PARTS = "3Support Core Designer DesignerComponents Gui Network Sql Svg Test Xml"
69
70 do_stage() {
71         oe_runmake install INSTALL_ROOT=/
72         install -m 0755 ${STAGING_BINDIR}/rcc4 ${STAGING_QT_DIR}/bin/rcc
73         install -m 0755 ${STAGING_BINDIR}/moc4 ${STAGING_QT_DIR}/bin/moc
74         install -m 0755 ${STAGING_BINDIR}/uic4 ${STAGING_QT_DIR}/bin/uic
75
76 }
77
78 # FIXME: Might want to call oe_runmake install INSTALL_ROOT=${D}/${prefix} as well...
79 do_install() {
80         install -d ${D}${libdir}
81         install -d ${D}${bindir}
82         for part in ${PARTS}
83         do
84                 oe_libinstall -so -C lib libQt$part ${D}${libdir}
85         done
86         oe_libinstall -a -C lib libQtAssistantClient ${STAGING_QT_DIR}
87         cp -pPR include/* ${D}${incdir}
88         cp -pPR plugins ${D}${libdir}
89         cp -pPR bin/* ${D}${bindir}
90
91         install -d ${D}${bindir}/qt4-examples
92         for binary in `find examples -perm 0755 -type f`
93         do
94                 install -m 0755 $binary ${D}${bindir}/qt4-examples/
95         done
96         install -d ${D}${bindir}/qt4-demos
97         for binary in `find demos -perm 0755 -type f`
98         do
99                 install -m 0755 $binary ${D}${bindir}/qt4-demos/
100         done
101 }
102
103 PACKAGES =+ "libqtcore4 libqtgui4 libqtnetwork4 libqtsql4 libqtsvg4 libqttest4 libqtxml4 \
104              libqtdesigner4 libqtdesignercomponents4 \
105              qt4-assistant qt4-common qt4-designer qt4-demos qt4-examples qt4-linguist \
106              qt4-plugins-accessible qt4-plugins-codecs qt4-plugins-designer qt4-plugins-imageformats qt4-plugins-sqldrivers"
107
108 FILES_libqtcore4               = "${libdir}/libQtCore.so*"
109 FILES_libqtgui4                = "${libdir}/libQtGui.so*"
110 FILES_libqtnetwork4            = "${libdir}/libQtNetwork.so*"
111 FILES_libqtsql4                = "${libdir}/libQtSql.so*"
112 FILES_libqtsvg4                = "${libdir}/libQtSvg.so*"
113 FILES_libqttest4               = "${libdir}/libQtTest.so*"
114 FILES_libqtxml4                = "${libdir}/libQtXml.so*"
115 FILES_libqtdesigner4           = "${libdir}/libQtDesigner.so*"
116 FILES_libqtdesignercomponents4 = "${libdir}/libQtDesignerComponents.so*"
117
118 FILES_qt4-plugins-accessible   = "${libdir}/plugins/accessible/*.so"
119 FILES_qt4-plugins-codecs       = "${libdir}/plugins/codecs/*.so"
120 FILES_qt4-plugins-designer     = "${libdir}/plugins/designer/*.so"
121 FILES_qt4-plugins-imageformats = "${libdir}/plugins/imageformats/*.so"
122 FILES_qt4-plugins-sqldrivers   = "${libdir}/plugins/sqldrivers/*.so"
123
124 FILES_qt4-assistant            = "${bindir}/*assistant*"
125 FILES_qt4-designer             = "${bindir}/*designer*"
126 FILES_qt4-linguist             = "${bindir}/*linguist* ${bindir}/lrelease ${bindir}/lupdate ${bindir}/qm2ts"
127
128 FILES_qt4-common               = "${bindir}/qtconfig"
129 FILES_qt4-examples             = "${bindir}/qt4-examples/*"
130 FILES_qt4-demos                = "${bindir}/qtdemo ${bindir}/qt4-demos/*"