merge of 425cf1b391611c169a1c3b78f1fe86df088902b9
[vuplus_openembedded] / packages / qt / qt4-x11-free_4.1.2.bb
1 SECTION = "x11/libs"
2 PRIORITY = "optional"
3 HOMEPAGE = "http://www.trolltech.com"
4 LICENSE = "GPL QPL"
5 DEPENDS = "uicmoc4-native qmake2-native freetype jpeg virtual/libx11 xft libxext libxrender libxrandr libxcursor"
6 PROVIDES = "qt4x11"
7 PR = "r1"
8
9 SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-${PV}.tar.gz \
10            file://cross-compile.patch;patch=1 \
11            file://fix-resinit-declaration.patch;patch=1 \
12            file://no-tools.patch;patch=1 \
13            file://no-qmake.patch;patch=1 \
14            file://gcc4_1.patch;patch=1 \
15            file://configurable-cpu-extensions.patch;patch=1 \
16            file://fix-mkspecs.patch;patch=1 \
17            file://fix-asm-constraints.patch;patch=1"
18 S = "${WORKDIR}/qt-x11-opensource-src-${PV}"
19
20 PARALLEL_MAKE = ""
21
22 inherit qmake-base qt4x11 pkgconfig
23
24 export QTDIR = "${S}"
25 STAGING_QT_DIR = "${STAGING_DIR}/${TARGET_SYS}/qt4"
26 EXTRA_OEMAKE = "-e"
27
28 def qt_arch(d):
29         import bb, re
30         arch = bb.data.getVar('TARGET_ARCH', d, 1)
31         if re.match("^i.86$", arch):
32                 arch = "x86"
33         elif re.match("^arm.*", arch):
34                 arch = "arm"
35         elif arch == "x86_64":
36                 arch = "x86"
37         elif arch == "mipsel":
38                 arch = "mips"
39         return arch
40
41 QT_ARCH := "${@qt_arch(d)}"
42
43 # FIXME:
44 # * add missing options
45 QT_CONFIG_FLAGS = "-release -shared -qt-zlib -system-libjpeg -no-nas-sound -no-sm -no-libmng -qt-libpng -no-gif -no-xinerama \
46                    -no-tablet -no-xkb -no-nis -no-cups -no-opengl \
47                    -nosse \
48                    -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 \
49                    -verbose -stl -no-accessibility"
50
51 EXTRA_ENV = 'QMAKE="${STAGING_BINDIR_NATIVE}/qmake2 -after DEFINES+=QT_NO_XIM INCPATH+=${STAGING_INCDIR} \
52              INCPATH+=${STAGING_INCDIR}/freetype2 LIBS+=-L${STAGING_LIBDIR}" \
53              QMAKESPEC="${QMAKESPEC}" LINK="${CXX} -Wl,-rpath-link,${STAGING_LIBDIR}" \
54              AR="${TARGET_PREFIX}ar cqs" \
55              MOC="${STAGING_BINDIR_NATIVE}/moc4" UIC="${STAGING_BINDIR_NATIVE}/uic4" MAKE="make -e"'
56
57 do_configure() {
58         echo "DEFINES -= QT_NO_CAST_TO_ASCII" >>src/qbase.pri
59         echo "DEFINES += QT_NO_XIM" >>src/qbase.pri
60         unset QMAKESPEC
61         ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
62         ln -sf ./linux-g++ mkspecs/linux-gnueabi-g++
63         #export QMAKESPEC="linux-oe-g++" 
64         #rm -rf ./mkspecs
65         #ln -sf ${QMAKE_MKSPEC_PATH} ./mkspecs
66         echo yes | ./configure -prefix / -platform ${TARGET_OS}-g++ -crossarch ${QT_ARCH} ${QT_CONFIG_FLAGS} -fast \
67                 -L${STAGING_LIBDIR} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/freetype2 -I${STAGING_INCDIR}/mysql
68 }
69
70 # FIXME: Might want to compile the cross tools for the -dev packages as well...
71 do_compile() {
72         unset CFLAGS CXXFLAGS
73         install -m 0755 ${STAGING_BINDIR_NATIVE}/rcc4 ${S}/bin/rcc
74         install -m 0755 ${STAGING_BINDIR_NATIVE}/moc4 ${S}/bin/moc
75         install -m 0755 ${STAGING_BINDIR_NATIVE}/uic4 ${S}/bin/uic
76
77         oe_runmake ${EXTRA_ENV}
78 }
79
80 PARTS = "3Support Core Designer DesignerComponents Gui Network Sql Svg Test Xml"
81
82 do_stage() {
83         oe_runmake install INSTALL_ROOT=/
84         install -m 0755 ${STAGING_BINDIR_NATIVE}/rcc4 ${STAGING_QT_DIR}/bin/rcc
85         install -m 0755 ${STAGING_BINDIR_NATIVE}/moc4 ${STAGING_QT_DIR}/bin/moc
86         install -m 0755 ${STAGING_BINDIR_NATIVE}/uic4 ${STAGING_QT_DIR}/bin/uic
87
88 }
89
90 # FIXME: Might want to call oe_runmake install INSTALL_ROOT=${D}/${prefix} as well...
91 # FIXME: Might want to install everything into ${libdir}/qt4/* to match the usual packing...
92 do_install() {
93         install -d ${D}${libdir}
94         install -d ${D}${bindir}
95         for part in ${PARTS}
96         do
97                 oe_libinstall -so -C lib libQt$part ${D}${libdir}
98         done
99         oe_libinstall -a -C lib libQtAssistantClient ${STAGING_QT_DIR}
100         cp -pPR include/* ${D}${incdir}
101         cp -pPR plugins ${D}${libdir}
102         cp -pPR bin/* ${D}${bindir}
103
104         install -d ${D}${bindir}/qt4-examples
105         for binary in `find examples -perm 0755 -type f`
106         do
107                 install -m 0755 $binary ${D}${bindir}/qt4-examples/
108         done
109         install -d ${D}${bindir}/qt4-demos
110         for binary in `find demos -perm 0755 -type f`
111         do
112                 install -m 0755 $binary ${D}${bindir}/qt4-demos/
113         done
114 }
115
116 PACKAGES =+ "libqtcore4 libqtgui4 libqtnetwork4 libqtsql4 libqtsvg4 libqttest4 libqtxml4 \
117              libqtdesigner4 libqtdesignercomponents4 libqt3support4 \
118              qt4-assistant qt4-common qt4-designer qt4-demos qt4-examples qt4-linguist \
119              qt4-plugins-accessible qt4-plugins-codecs qt4-plugins-designer qt4-plugins-imageformats qt4-plugins-sqldrivers"
120
121 ALLOW_EMPTY = "1"
122 FILES_${PN} = ""
123 RDEPENDS_${PN} = "${PACKAGES}"
124
125 FILES_libqtcore4               = "${libdir}/libQtCore.so*"
126 FILES_libqtgui4                = "${libdir}/libQtGui.so*"
127 FILES_libqtnetwork4            = "${libdir}/libQtNetwork.so*"
128 FILES_libqtsql4                = "${libdir}/libQtSql.so*"
129 FILES_libqtsvg4                = "${libdir}/libQtSvg.so*"
130 FILES_libqttest4               = "${libdir}/libQtTest.so*"
131 FILES_libqtxml4                = "${libdir}/libQtXml.so*"
132 FILES_libqtdesigner4           = "${libdir}/libQtDesigner.so*"
133 FILES_libqtdesignercomponents4 = "${libdir}/libQtDesignerComponents.so*"
134 FILES_libqt3support4           = "${libdir}/libQt3Support.so*"
135
136 FILES_qt4-plugins-accessible   = "${libdir}/plugins/accessible/*.so"
137 FILES_qt4-plugins-codecs       = "${libdir}/plugins/codecs/*.so"
138 FILES_qt4-plugins-designer     = "${libdir}/plugins/designer/*.so"
139 FILES_qt4-plugins-imageformats = "${libdir}/plugins/imageformats/*.so"
140 FILES_qt4-plugins-sqldrivers   = "${libdir}/plugins/sqldrivers/*.so"
141
142 FILES_qt4-assistant            = "${bindir}/*assistant*"
143 FILES_qt4-designer             = "${bindir}/*designer*"
144 FILES_qt4-linguist             = "${bindir}/*linguist* ${bindir}/lrelease ${bindir}/lupdate ${bindir}/qm2ts"
145
146 FILES_qt4-common               = "${bindir}/qtconfig"
147 FILES_qt4-examples             = "${bindir}/qt4-examples/*"
148 FILES_qt4-demos                = "${bindir}/qtdemo ${bindir}/qt4-demos/*"
149
150 FILES_${PN}-dev               += "${bindir}/rcc ${bindir}/uic* ${bindir}/moc ${bindir}/qmake ${bindir}/syncqt \
151                                   ${bindir}/qt3to4 ${bindir}/findtr"