summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/qmake5.bbclass5
-rw-r--r--classes/qmake5_base.bbclass58
-rw-r--r--recipes-qt/qt5/qt5.inc10
-rw-r--r--recipes-qt/qt5/qtbase-native.inc31
-rw-r--r--recipes-qt/qt5/qtbase.inc2
-rw-r--r--recipes-qt/qt5/qtjsbackend-native.inc29
6 files changed, 63 insertions, 72 deletions
diff --git a/classes/qmake5.bbclass b/classes/qmake5.bbclass
index 00d6c0ea..68c19f7f 100644
--- a/classes/qmake5.bbclass
+++ b/classes/qmake5.bbclass
@@ -6,11 +6,6 @@ inherit qmake5_base
6QT5TOOLSDEPENDS ?= "qtbase-native " 6QT5TOOLSDEPENDS ?= "qtbase-native "
7DEPENDS_prepend = "${QT5TOOLSDEPENDS}" 7DEPENDS_prepend = "${QT5TOOLSDEPENDS}"
8 8
9export QMAKESPEC = "${STAGING_DATADIR}/qt5/mkspecs/${TARGET_OS}-oe-g++"
10export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/uic"
11export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/moc"
12export OE_QMAKE_RCC = "${STAGING_BINDIR_NATIVE}/rcc"
13export OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}/qmake"
14export OE_QMAKE_LINK = "${CXX}" 9export OE_QMAKE_LINK = "${CXX}"
15export OE_QMAKE_CXXFLAGS = "${CXXFLAGS}" 10export OE_QMAKE_CXXFLAGS = "${CXXFLAGS}"
16export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/qt5" 11export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/qt5"
diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass
index ee5ff780..b9279967 100644
--- a/classes/qmake5_base.bbclass
+++ b/classes/qmake5_base.bbclass
@@ -1,35 +1,51 @@
1QMAKE_MKSPEC_PATH ?= "${STAGING_DATADIR_NATIVE}/${QT_DIR_NAME}/mkspecs"
2OE_QMAKE_PLATFORM = "${TARGET_OS}-oe-g++"
3QMAKESPEC := "${QMAKE_MKSPEC_PATH}/${OE_QMAKE_PLATFORM}"
1 4
2# We override this completely to eliminate the -e normally passed in 5EXTRA_OEMAKE = ' MAKEFLAGS=${PARALLEL_MAKE} '
3EXTRA_OEMAKE = ' MAKEFLAGS= '
4 6
5export OE_QMAKE_CC="${CC}" 7EXTRA_ENV = 'QMAKE="${OE_QMAKE_QMAKE} -d -after \
6export OE_QMAKE_CFLAGS="${CFLAGS}" 8 INCPATH+=${STAGING_INCDIR}/freetype2 LIBS+=-L${STAGING_LIBDIR}" \
7export OE_QMAKE_CXX="${CXX}" 9 LINK="${CXX} -Wl,-rpath-link,${STAGING_LIBDIR}" \
8export OE_QMAKE_LDFLAGS="${LDFLAGS}" 10 AR="${TARGET_PREFIX}ar cqs" \
9export OE_QMAKE_AR="${AR} cqs" 11 MOC="${OE_QMAKE_MOC}" \
10export OE_QMAKE_STRIP="echo" 12 UIC="${OE_QMAKE_UIC}" \
11export OE_QMAKE_RPATH="-Wl,-rpath-link," 13 RCC="${OE_QMAKE_RCC}" \
14 MAKE="make -e ${PARALLEL_MAKE}"'
15
16export QMAKESPEC = "${QMAKE_MKSPEC_PATH}/${TARGET_OS}-oe-g++"
17export OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/qmake"
18export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/uic"
19export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/moc"
20export OE_QMAKE_RCC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/rcc"
21export OE_QMAKE_CC = "${CC}"
22export OE_QMAKE_CFLAGS = "${CFLAGS}"
23export OE_QMAKE_CXX = "${CXX}"
24export OE_QMAKE_LDFLAGS = "${LDFLAGS}"
25export OE_QMAKE_AR = "${AR} cqs"
26export OE_QMAKE_STRIP = "echo"
27export OE_QMAKE_RPATH = "-Wl,-rpath-link,"
28export OE_QMAKE_CONF_COMPILER = "g++"
29export QT_CONF_PATH = "${WORKDIR}/qt.conf"
30export QT_DIR_NAME ?= "qt5"
12 31
13# do not export STRIP to the environment 32# do not export STRIP to the environment
14STRIP[unexport] = "1" 33STRIP[unexport] = "1"
15 34
16do_generate_qt_config_file() { 35do_generate_qt_config_file() {
17
18 export QT_CONF_PATH=${WORKDIR}/qt.conf
19 cat > ${WORKDIR}/qt.conf <<EOF 36 cat > ${WORKDIR}/qt.conf <<EOF
20[Paths] 37[Paths]
21Binaries = ${bindir} 38Binaries = ${bindir}
22Headers = ${STAGING_INCDIR}/qt5 39Libraries = ${libdir}
23Plugins = ${libdir}/qt5/plugins 40Prefix = ${prefix}
24Libraries = ${STAGING_LIBDIR} 41Headers = ${includedir}/${QT_DIR_NAME}
25Imports = ${datadir}/qt5/imports 42Data = ${datadir}/${QT_DIR_NAME}
26Qml2Imports = ${libdir}/qt5/qml 43ArchData = ${libdir}/${QT_DIR_NAME}
27Documentation=${docdir}/qt5 44Documentation = ${docdir}/${QT_DIR_NAME}
28Data = ${datadir}/qt5 45HostData = ${STAGING_DATADIR}/${QT_DIR_NAME}
29HostData = ${STAGING_DATADIR}/qt5 46HostSpecPath = ${QMAKE_MKSPEC_PATH}
30HostBinaries = ${STAGING_BINDIR_NATIVE} 47HostBinaries = ${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}
31EOF 48EOF
32
33} 49}
34 50
35addtask generate_qt_config_file after do_patch before do_configure 51addtask generate_qt_config_file after do_patch before do_configure
diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc
index 97f3ee17..8d5dd81e 100644
--- a/recipes-qt/qt5/qt5.inc
+++ b/recipes-qt/qt5/qt5.inc
@@ -55,19 +55,11 @@ QT_CONFIG_FLAGS += " \
55 ${QT_DEMOS} \ 55 ${QT_DEMOS} \
56" 56"
57 57
58EXTRA_ENV = 'QMAKE="${STAGING_BINDIR_NATIVE}/qmake -d -after \
59 INCPATH+=${STAGING_INCDIR}/freetype2 LIBS+=-L${STAGING_LIBDIR}" \
60 LINK="${CXX} -Wl,-rpath-link,${STAGING_LIBDIR}" \
61 AR="${TARGET_PREFIX}ar cqs" \
62 MOC="${STAGING_BINDIR_NATIVE}/moc" UIC="${STAGING_BINDIR_NATIVE}/uic" MAKE="make -e ${PARALLEL_MAKE}"'
63
64export QT_CONF_PATH="${S}/qt.conf"
65
66do_configure() { 58do_configure() {
67 set_endian 59 set_endian
68 60
69 if [ ! -e bin/qmake ]; then 61 if [ ! -e bin/qmake ]; then
70 ln -sf ${STAGING_BINDIR_NATIVE}/qmake bin/qmake 62 ln -sf ${OE_QMAKE_QMAKE} bin/qmake
71 fi 63 fi
72 64
73 # Avoid problems with the linkers, since we want the linker to be g++ 65 # Avoid problems with the linkers, since we want the linker to be g++
diff --git a/recipes-qt/qt5/qtbase-native.inc b/recipes-qt/qt5/qtbase-native.inc
index db1292cd..c401c7bd 100644
--- a/recipes-qt/qt5/qtbase-native.inc
+++ b/recipes-qt/qt5/qtbase-native.inc
@@ -3,18 +3,24 @@ DEPENDS = "zlib-native dbus-native"
3SECTION = "libs" 3SECTION = "libs"
4HOMEPAGE = "http://qt-project.org" 4HOMEPAGE = "http://qt-project.org"
5 5
6INC_PR = "r0" 6INC_PR = "r1"
7 7
8inherit native 8inherit native
9 9
10QT_MODULE = "qtbase" 10QT_MODULE = "qtbase"
11 11
12SSTATE_SCAN_FILES += "*.pri *.prl"
13QT_DIR_NAME ?= "qt5"
14
12SRC_URI += " \ 15SRC_URI += " \
13 file://0001-qlibraryinfo-Allow-the-specification-of-where-to-loa.patch \ 16 file://0001-qlibraryinfo-Allow-the-specification-of-where-to-loa.patch \
14 file://0003-qtbase-Allow-qt.conf-override-when-bootstrapping.patch \ 17 file://0003-qtbase-Allow-qt.conf-override-when-bootstrapping.patch \
15 file://0001-Always-build-uic.patch \ 18 file://0001-Always-build-uic.patch \
16" 19"
17 20
21EXTRA_ENV = 'MAKE="make -e ${PARALLEL_MAKE}"'
22EXTRA_OEMAKE = ' MAKEFLAGS=${PARALLEL_MAKE} '
23
18EXTRA_OECONF = " \ 24EXTRA_OECONF = " \
19 -prefix ${prefix} \ 25 -prefix ${prefix} \
20 -L ${STAGING_LIBDIR_NATIVE} \ 26 -L ${STAGING_LIBDIR_NATIVE} \
@@ -34,9 +40,14 @@ EXTRA_OECONF = " \
34 -no-openssl \ 40 -no-openssl \
35 -no-xcb \ 41 -no-xcb \
36 -verbose -release \ 42 -verbose -release \
37 -headerdir ${includedir}/qt5 \ 43 -prefix ${prefix} \
38 -datadir ${datadir}/qt5 \ 44 -bindir ${bindir}/${QT_DIR_NAME} \
39 -docdir ${docdir}/qt5 \ 45 -headerdir ${includedir}/${QT_DIR_NAME} \
46 -archdatadir ${libdir}/${QT_DIR_NAME} \
47 -datadir ${datadir}/${QT_DIR_NAME} \
48 -docdir ${docdir}/${QT_DIR_NAME} \
49 -hostdatadir ${datadir}/${QT_DIR_NAME} \
50 -hostbindir ${bindir}/${QT_DIR_NAME} \
40 -no-glib \ 51 -no-glib \
41 -no-iconv \ 52 -no-iconv \
42 -silent \ 53 -silent \
@@ -54,10 +65,10 @@ do_configure() {
54} 65}
55 66
56do_install() { 67do_install() {
57 install -d ${D}${bindir}/ 68 oe_runmake install INSTALL_ROOT=${D}
58 for i in findtr fixqt4headers.pl moc qdoc qmake rcc qdbuscpp2xml qdbusxml2cpp syncqt uic; do 69 ln -sf linux-g++ ${D}${datadir}/${QT_DIR_NAME}/mkspecs/${BUILD_OS}-oe-g++
59 install -v -m 0755 bin/${i} ${D}${bindir}/${i} 70
60 done 71 # replace common files with our version
61 install -d ${D}${datadir}/qt5/ 72 cp -f ${WORKDIR}/g++.conf ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/g++-unix.conf
62 cp -PfR mkspecs ${D}${datadir}/qt5/ 73 cp -f ${WORKDIR}/linux.conf ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/linux.conf
63} 74}
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index f420d37a..d4a5652d 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -70,7 +70,7 @@ do_configure_append() {
70 echo "Translations=${datadir}/${QT_DIR_NAME}/translations" >> $QT_CONF_PATH 70 echo "Translations=${datadir}/${QT_DIR_NAME}/translations" >> $QT_CONF_PATH
71 echo "Settings=${sysconfdir}/${QT_DIR_NAME}" >> $QT_CONF_PATH 71 echo "Settings=${sysconfdir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
72 echo "Examples=${bindir}/${QT_DIR_NAME}/examples" >> $QT_CONF_PATH 72 echo "Examples=${bindir}/${QT_DIR_NAME}/examples" >> $QT_CONF_PATH
73 echo "HostBinaries=${STAGING_BINDIR_NATIVE}" >> $QT_CONF_PATH 73 echo "HostBinaries=${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}" >> $QT_CONF_PATH
74 echo "HostData=${STAGING_DATADIR}/${QT_DIR_NAME}" >> $QT_CONF_PATH 74 echo "HostData=${STAGING_DATADIR}/${QT_DIR_NAME}" >> $QT_CONF_PATH
75 75
76 ./configure -v \ 76 ./configure -v \
diff --git a/recipes-qt/qt5/qtjsbackend-native.inc b/recipes-qt/qt5/qtjsbackend-native.inc
index 37e2b80d..56bb854c 100644
--- a/recipes-qt/qt5/qtjsbackend-native.inc
+++ b/recipes-qt/qt5/qtjsbackend-native.inc
@@ -7,44 +7,21 @@ QT_MODULE = "qtjsbackend"
7 7
8INC_PR = "r0" 8INC_PR = "r0"
9 9
10inherit native 10inherit native qmake5_base
11 11
12SRC_URI += "\ 12SRC_URI += "\
13 file://module_qmake.conf \
14 file://0001-Install-the-mkv8snapshot-tool-to-the-native-side.patch \ 13 file://0001-Install-the-mkv8snapshot-tool-to-the-native-side.patch \
15" 14"
16 15
17# Bitbake will not respect the make order set by qmake and at times it will try to compile 16# Bitbake will not respect the make order set by qmake and at times it will try to compile
18# parts of the source tree with out the 'mkv8snapshot' tool if it is enabled and that will fail 17# parts of the source tree with out the 'mkv8snapshot' tool if it is enabled and that will fail
19PARALLEL_MAKE = "" 18#PARALLEL_MAKE = ""
20
21export QT_CONF_PATH="${WORKDIR}/qt.conf"
22 19
23do_configure() { 20do_configure() {
24 # Avoid setting QMAKE_LINK from LD (since we want the linker to be g++) 21 # Avoid setting QMAKE_LINK from LD (since we want the linker to be g++)
25 unset LD 22 unset LD
26 23
27 cat > ${WORKDIR}/qt.conf <<EOF 24 ${OE_QMAKE_QMAKE} -d -r
28[Paths]
29Prefix = ${prefix}
30Binaries = ${bindir}
31Headers = ${includedir}/qt5
32Plugins = ${libdir}/qt5/plugins
33Libraries = ${libdir}
34Imports = ${datadir}/qt5/imports
35Qml2Imports = ${libdir}/qt5/qml
36Documentation=${docdir}/qt5
37Data = ${datadir}/qt5
38HostPrefix = ${STAGING_DATADIR}
39HostData = ${STAGING_DATADIR}/qt5
40HostBinaries = ${STAGING_BINDIR_NATIVE}
41EOF
42
43 # This should not be needed. Perhaps the lack of this file is an indication
44 # of an error on the native recipe...
45 cp ${WORKDIR}/module_qmake.conf ${S}/.qmake.conf
46
47 ${STAGING_BINDIR_NATIVE}/qmake -d -r
48} 25}
49 26
50do_install() { 27do_install() {