Merge pull request #5 from levonmaa/master

Fixed installations and recipes for qtjsbackend and qtdeclarative
This commit is contained in:
Otavio Salvador 2012-12-10 11:27:37 -08:00
commit d4ff67c8f7
16 changed files with 263 additions and 25 deletions

View File

@ -14,21 +14,22 @@ export OE_QMAKE_RPATH="-Wl,-rpath-link,"
STRIP[unexport] = "1"
do_generate_qt_config_file() {
export QT_CONF_PATH=${WORKDIR}/qt.conf
cat > ${WORKDIR}/qt.conf <<EOF
export QT_CONF_PATH=${WORKDIR}/qt.conf
cat > ${WORKDIR}/qt.conf <<EOF
[Paths]
Prefix =
Binaries = ${STAGING_BINDIR_NATIVE}
Binaries = ${bindir}
Headers = ${STAGING_INCDIR}/qt5
Plugins = ${STAGING_LIBDIR}/qt5/plugins/
Libraries = ${STAGING_LIBDIR}
Plugins = ${libdir}/qt5/plugins
Libraries = ${libdir}
Imports = ${datadir}/qt5/imports
Qml2Imports = ${libdir}/qt5/qml
Documentation=${docdir}/qt5
Data = ${datadir}/qt5
HostData = ${STAGING_DATADIR}/qt5
HostBinaries = ${STAGING_BINDIR_NATIVE}/
HostBinaries = ${STAGING_BINDIR_NATIVE}
EOF
}
addtask generate_qt_config_file after do_patch before do_configure
#EXPORT_FUNCTIONS do_configure
#addtask configure after do_unpack do_patch before do_compile

View File

@ -0,0 +1 @@
load(qt_build_config)

View File

@ -10,6 +10,8 @@ SRC_URI += " \
S = "${WORKDIR}/${QT_MODULE}-opensource-src-${QT_VERSION}"
DEFAULT_PREFERENCE = "-1"
LICENSE = "GFDL-1.3 & LGPLv2.1 | GPLv3"
LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=02356821480f1d3d534b21e0343265b5 \
file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \

View File

@ -9,9 +9,7 @@ SRC_URI += " \
S = "${WORKDIR}/git"
PV = "4.999+5.0.0-beta2+gitr${SRCPV}"
DEFAULT_PREFERENCE = "-1"
PV = "4.999+5.0.0-beta2+git-r${SRCPV}"
LICENSE = "GFDL-1.3 & LGPLv2.1 | GPLv3"
LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=02356821480f1d3d534b21e0343265b5 \

View File

@ -3,5 +3,7 @@ require qt5-${PV}.inc
PR = "${INC_PR}.0"
DEFAULT_PREFERENCE = "-1"
SRC_URI[md5sum] = "735b6d6c3711f59ee7d5454dc6b8a2f2"
SRC_URI[sha256sum] = "f62b238220f384d84587d0519fb7fa8961a4d70871d38d6a4bc4e4f013b8606f"

View File

@ -3,4 +3,4 @@ require qt5-4.999+git.inc
PR = "${INC_PR}.0"
SRCREV = "f7d99ad50f11ee7c263d4c2bdbe024355a1ab3e9"
SRCREV = "b9321a1a5f1b255e5e5860edb42c63a4e4da6804"

View File

@ -80,12 +80,32 @@ do_configure() {
# Avoid problems with the linkers, since we want the linker to be g++
unset LD
### Make sure that our mkspecs will eventually end up in STAGING_DATADIR
${OE_QMAKE_QMAKE} -set OE_CROSS_INSTALL_DATA ${datadir}/${QT_DIR_NAME}
sed -i '/mkspecs\.path/s/QT_HOST_DATA/OE_CROSS_INSTALL_DATA/' qtbase.pro
sed -i '/pritarget/s/QT_HOST_DATA/OE_CROSS_INSTALL_DATA/' mkspecs/features/qt_installs.prf
### Same applies to the module headers...
${OE_QMAKE_QMAKE} -set OE_CROSS_INSTALL_HEADERS ${includedir}/${QT_DIR_NAME}
sed -i 's/QT_INSTALL_HEADERS/OE_CROSS_INSTALL_HEADERS/g' mkspecs/features/qt_installs.prf
### Create the mkspec for the target
mkdir -p mkspecs/${TARGET_OS}-oe-g++
cp -f ${WORKDIR}/qplatformdefs.h mkspecs/${TARGET_OS}-oe-g++
bash ${WORKDIR}/qmake.conf.sh > mkspecs/${TARGET_OS}-oe-g++/qmake.conf
### Stage the base mkspecs so that 'HostData' will find them
mkdir -p ${STAGING_DATADIR}/${QT_DIR_NAME}
cp -r ${STAGING_DATADIR_NATIVE}/${QT_DIR_NAME}/mkspecs ${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs
cp -r ${STAGING_DATADIR_NATIVE}/${QT_DIR_NAME}/mkspecs ${STAGING_DATADIR}/${QT_DIR_NAME}/
### Make sure that modules are installed correctly. During configure they will pick this one
### instead of the one from ${S}/mkspecs...
sed -i '/pritarget/s/QT_HOST_DATA/OE_CROSS_INSTALL_DATA/' \
${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/features/qt_installs.prf
rm -rf ${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/modules*
### Remove the old pri files
rm ${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/*.pri
echo "[Paths]" > $QT_CONF_PATH
echo "Binaries=${bindir}" >> $QT_CONF_PATH
@ -98,9 +118,10 @@ do_configure() {
echo "Settings=${sysconfdir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
echo "Examples=${bindir}/${QT_DIR_NAME}/examples" >> $QT_CONF_PATH
echo "HostBinaries=${STAGING_BINDIR_NATIVE}" >> $QT_CONF_PATH
echo "HostData=${STAGING_DATADIR}/${QT_DIR_NAME}" >> $QT_CONF_PATH
echo "HostData=${STAGING_DATADIR}/${QT_DIR_NAME}" >> $QT_CONF_PATH
./configure -v \
-dont-process \
-opensource -confirm-license \
-prefix ${prefix} \
-bindir ${bindir} \
@ -117,16 +138,21 @@ do_configure() {
-xplatform ${TARGET_OS}-oe-g++ \
${QT_CONFIG_FLAGS}
### Since we are pointing our host data we need to get them there before compile
### Since we are pointing our host data we need to get them there before compilation
if [ ! -e ${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/${TARGET_OS}-oe-g++ ]; then
cp -rf mkspecs/${TARGET_OS}-oe-g++ ${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/${TARGET_OS}-oe-g++
fi
### qmodule.pri and qconfig.pri contain target specific stuff copy them over as well
cp -f mkspecs/qmodule.pri ${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/qmodule.pri
cp -f mkspecs/qconfig.pri ${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/qconfig.pri
### As we provided the '-dont-process' switch inorder to allow us to stage a few files
### generated by the configure we need to manually run qmake the generate _all_ the Makefiles (-r)
${OE_QMAKE_QMAKE} -r -d
}
do_compile() {
unset CFLAGS CXXFLAGS AR
oe_runmake ${EXTRA_ENV}
@ -141,7 +167,8 @@ do_compile() {
do_install() {
oe_runmake install INSTALL_ROOT=${D}
# Fix up the binaries to the right location
### Fix up the binaries to the right location
### TODO: FIX
install -d ${D}${bindir}/
mv ${D}/${STAGING_BINDIR_NATIVE}/* ${D}${bindir}/
rm -rf ${D}/${STAGING_BINDIR_NATIVE}/
@ -153,11 +180,17 @@ do_install() {
FILES_${PN} = "${libdir}/*.so.*"
FILES_${PN}-dbg = "${libdir}/.debug/*.so.*"
FILES_${PN}-plugins = "${libdir}/${QT_DIR_NAME}/platforms/*"
FILES_${PN}-plugins-dbg = "${libdir}/${QT_DIR_NAME}/platforms/.debug/*"
FILES_${PN}-plugins = "${libdir}/${QT_DIR_NAME}/plugins/*"
FILES_${PN}-plugins-dbg = "${libdir}/${QT_DIR_NAME}/plugins/.debug/*"
FILES_${PN}-dev = "${libdir}/cmake/* ${libdir}/pkgconfig/*.pc ${libdir}/*.la ${libdir}/*.prl ${includedir}/qt5/*"
FILES_${PN}-dev = " \
${libdir}/cmake/* \
${libdir}/pkgconfig/*.pc \
${libdir}/*.la \
${libdir}/*.prl \
${includedir}/qt5/* \
${datadir}/qt5/* \
"
FILES_${PN}-staticdev = "${libdir}/libQt*.a"
FILES_${PN}-tools = "${bindir}/*"
FILES_${PN}-mkspecs = "${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/*"
FILES_${PN}-doc = "${STAGING_DATADIR}/doc/*"
FILES_${PN}-doc = "${datadir}/doc/*"

View File

@ -3,4 +3,4 @@ require qt5-4.999+git.inc
PR = "${INC_PR}.0"
SRCREV = "f7d99ad50f11ee7c263d4c2bdbe024355a1ab3e9"
SRCREV = "b9321a1a5f1b255e5e5860edb42c63a4e4da6804"

View File

@ -0,0 +1,45 @@
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780"
DEPENDS = "qtbase qtjsbackend"
INC_PR = "r0"
inherit qmake5
SRC_URI += " \
file://module_qmake.conf \
"
export QT_CONF_PATH="${WORKDIR}/qt.conf"
do_configure () {
# Avoid setting QMAKE_LINK from LD (since we want the linker to be g++)
unset LD
# This should not be needed. Perhaps the lack of this file is an indication
# of an error on the native recipe...
cp ${WORKDIR}/module_qmake.conf ${S}/.qmake.conf
${OE_QMAKE_QMAKE} -r -d
}
do_install() {
oe_runmake install INSTALL_ROOT=${D}
}
FILES_${PN}-dev = "\
${includedir}/qt5/* \
${datadir}/qt5/mkspecs/* \
${libdir}/*.prl \
${libdir}/cmake/* \
${libdir}/pkgconfig/*.pc \
"
FILES_${PN}-staticdev = "${libdir}/*.la"
FILES_${PN}-tools = "${bindir}/*"
FILES_${PN}-qmlplugins = "${libdir}/qt5/qml/*"
FILES_${PN}-qmltooling = "${libdir}/qt5/plugins/qmltooling/*"
FILES_${PN}-qmltooling-dbg = "${libdir}/qt5/plugins/qmltooling/.debug/*"
PACAKGES += "FILES_${PN}-tools FILES_${PN}-qmlplugins FILES_${PN}-qmltooling FILES_${PN}-qmltooling-dbg"

View File

@ -0,0 +1,7 @@
SRCREV = "425260c2b2a60c0c145a5e76a3b7835eadd0fd0d"
SRC_URI += "git://gitorious.org/qt/qtdeclarative.git;protocol=git"
S = "${WORKDIR}/git"
require qtdeclarative.inc
PR = "${INC_PR}.0"

View File

@ -0,0 +1,32 @@
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780"
DEPENDS = "qt5-native"
INC_PR = "r0"
inherit native
SRC_URI += "\
file://qmake.conf \
file://0001-Install-the-mkv8snapshot-tool-to-the-native-side.patch \
"
# Bitbake will not respect the make order set by qmake and at times it will try to compile
# parts of the source tree with out the 'mkv8snapshot' tool if it is enabled and that will fail
PARALLEL_MAKE = ""
do_configure() {
# Avoid setting QMAKE_LINK from LD (since we want the linker to be g++)
unset LD
# This should not be needed. Perhaps the lack of this file is an indication
# of an error on the native recipe...
cp ${WORKDIR}/qmake.conf ${S}/.qmake.conf
${STAGING_BINDIR_NATIVE}/qmake -d
}
do_install() {
oe_runmake install INSTALL_ROOT=${D}
}

View File

@ -0,0 +1,8 @@
SRCREV = "b41c2151fdfca3f63a6cd45f6c69ae678694b63e"
SRC_URI += "git://gitorious.org/qt/qtjsbackend.git;protocol=git"
S = "${WORKDIR}/git"
require qtjsbackend-native.inc
PR = "${INC_PR}.0"

View File

@ -0,0 +1,40 @@
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780"
DEPENDS = "qtbase"
INC_PR = "r0"
inherit qmake5
SRC_URI += " \
file://module_qmake.conf \
file://0002-Make-sure-that-we-pick-up-the-mkv8snapshot-tool.patch \
"
# Bitbake will not respect the make order set by qmake and at times it will try to compile
# parts of the source tree with out the 'mkv8snapshot' tool if it is enabled and that will fail
PARALLEL_MAKE = ""
export QT_CONF_PATH="${WORKDIR}/qt.conf"
do_configure () {
# Avoid setting QMAKE_LINK from LD (since we want the linker to be g++)
unset LD
# This should not be needed. Perhaps the lack of this file is an indication
# of an error on the native recipe...
cp ${WORKDIR}/module_qmake.conf ${S}/.qmake.conf
${OE_QMAKE_QMAKE} -r -d
}
do_install() {
oe_runmake install INSTALL_ROOT=${D}
}
FILES_${PN}-dev += "\
${incdir}/qt5/* \
${datadir}/qt5/* \
${libdir}/*.prl \
"

View File

@ -0,0 +1,32 @@
From d962ede7b874be21af636e07205cbb3866d82b27 Mon Sep 17 00:00:00 2001
From: Mikko Levonmaa <mikko.levonmaa@palm.com>
Date: Tue, 4 Dec 2012 11:20:13 -0800
Subject: [PATCH] Install the mkv8snapshot tool to the native side
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com>
---
src/tools/mkv8snapshot/mkv8snapshot.pro | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/tools/mkv8snapshot/mkv8snapshot.pro b/src/tools/mkv8snapshot/mkv8snapshot.pro
index 16beb02..5e327f7 100644
--- a/src/tools/mkv8snapshot/mkv8snapshot.pro
+++ b/src/tools/mkv8snapshot/mkv8snapshot.pro
@@ -24,5 +24,10 @@ unix:LIBS += -lpthread
# We don't need to install this tool, it's only used for building v8.
# However we do have to make sure that 'make install' builds it.
-dummytarget.CONFIG = dummy_install
-INSTALLS += dummytarget
+#dummytarget.CONFIG = dummy_install
+#INSTALLS += dummytarget
+
+# Install the tool so that during target cross compilation we have access to the native side binary
+target.path = $$[QT_HOST_BINS]
+INSTALLS += target
+
--
1.7.4.1

View File

@ -0,0 +1,30 @@
From 3e07a136f42db68390cb9e20f5476e896f3bcd63 Mon Sep 17 00:00:00 2001
From: Mikko Levonmaa <mikko.levonmaa@palm.com>
Date: Tue, 4 Dec 2012 11:25:22 -0800
Subject: [PATCH 2/2] Make sure that we pick up the mkv8snapshot tool
from the native sysroot
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com>
---
src/v8/v8.pro | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/v8/v8.pro b/src/v8/v8.pro
index 2be6a19..2478e5f 100644
--- a/src/v8/v8.pro
+++ b/src/v8/v8.pro
@@ -25,7 +25,8 @@ INCLUDEPATH -= $$MODULE_INCLUDES $$MODULE_INCLUDES/..
include(v8.pri)
contains(QT_CONFIG, v8snapshot) {
- mkv8snapshot.commands = ../../bin/mkv8snapshot$$qtPlatformTargetSuffix() ${QMAKE_FILE_OUT}
+ #mkv8snapshot.commands = ../../bin/mkv8snapshot$$qtPlatformTargetSuffix() ${QMAKE_FILE_OUT}
+ mkv8snapshot.commands = mkv8snapshot$$qtPlatformTargetSuffix() ${QMAKE_FILE_OUT}
DUMMY_FILE = v8.pro
mkv8snapshot.input = DUMMY_FILE
mkv8snapshot.output = $$V8_GENERATED_SOURCES_DIR/snapshot.cpp
--
1.7.4.1

View File

@ -0,0 +1,7 @@
SRCREV = "b41c2151fdfca3f63a6cd45f6c69ae678694b63e"
SRC_URI += "git://gitorious.org/qt/qtjsbackend.git;protocol=git"
S = "${WORKDIR}/git"
require qtjsbackend.inc
PR = "${INC_PR}.0"