aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2017-03-15 08:39:13 +0200
committerSamuli Piippo <samuli.piippo@qt.io>2017-03-22 14:07:02 +0000
commit1d4ab7d047df4e08249b9c3d22bff78c02caf8ed (patch)
tree51cc88f9a63e854ce3d568319711caddff8c5aed
parentb13e04ff53a9b5c232487a61fd0a91073d719dce (diff)
qtwebengine: update to use gn based build system
QtWebEngine switched from gyp to gn when generating ninja files. Parts of the build need to be done using host toolchain, which needs to be patched to work with bitbake builds. Change-Id: I5241f215fbaf49a2dedd8699b7984de33f38b5d3 Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch71
-rw-r--r--recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch24
-rw-r--r--recipes-qt/qt5/qtwebengine_git.bb45
3 files changed, 93 insertions, 47 deletions
diff --git a/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch b/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
new file mode 100644
index 00000000..65d170c5
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
@@ -0,0 +1,71 @@
+From 5c879db32cde9bee9c9073842ecc281172f19453 Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Wed, 15 Mar 2017 13:53:28 +0200
+Subject: [PATCH] Force host toolchain configuration
+
+Force gcc/g++ to be used for parts using host toolchain, since
+the option(host_build) does not work in yocto builds.
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+---
+ src/buildtools/configure_host.pro | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/buildtools/configure_host.pro b/src/buildtools/configure_host.pro
+index d8d731d..89dade4 100644
+--- a/src/buildtools/configure_host.pro
++++ b/src/buildtools/configure_host.pro
+@@ -16,9 +16,9 @@ GN_CONTENTS = \
+ "import(\"//build/config/sysroot.gni\")" \
+ "import(\"//build/toolchain/gcc_toolchain.gni\")" \
+ "gcc_toolchain(\"host\") {" \
+-" cc = \"$$which($$QMAKE_CC)\" " \
+-" cxx = \"$$which($$QMAKE_CXX)\" " \
+-" ld = \"$$which($$QMAKE_LINK)\" " \
++" cc = \"$$which(gcc)\" " \
++" cxx = \"$$which(g++)\" " \
++" ld = \"$$which(g++)\" " \
+ " ar = \"$$which(ar)\" " \
+ " nm = \"$$which(nm)\" " \
+ " toolchain_args = { " \
+@@ -27,9 +27,9 @@ GN_CONTENTS = \
+ " } " \
+ "}" \
+ "gcc_toolchain(\"v8_snapshot\") {" \
+-" cc = \"$$which($$QMAKE_CC)\" " \
+-" cxx = \"$$which($$QMAKE_CXX)\" " \
+-" ld = \"$$which($$QMAKE_LINK)\" " \
++" cc = \"$$which(gcc)\" " \
++" cxx = \"$$which(g++)\" " \
++" ld = \"$$which(g++)\" " \
+ " ar = \"$$which(ar)\" " \
+ " nm = \"$$which(nm)\" " \
+ " toolchain_args = { " \
+diff --git a/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py b/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py
+index 75b9690..601f688 100755
+--- a/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py
++++ b/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py
+@@ -298,14 +298,14 @@ def write_gn_ninja(path, root_gen_dir, options):
+ ld = os.environ.get('LD', 'link.exe')
+ ar = os.environ.get('AR', 'lib.exe')
+ else:
+- cc = os.environ.get('CC', 'cc')
+- cxx = os.environ.get('CXX', 'c++')
+- ld = os.environ.get('LD', cxx)
+- ar = os.environ.get('AR', 'ar')
+-
+- cflags = os.environ.get('CFLAGS', '').split()
+- cflags_cc = os.environ.get('CXXFLAGS', '').split()
+- ldflags = os.environ.get('LDFLAGS', '').split()
++ cc = os.environ.get('CC_host', 'cc')
++ cxx = os.environ.get('CXX_host', 'c++')
++ ld = os.environ.get('LD_host', cxx)
++ ar = os.environ.get('AR_host', 'ar')
++
++ cflags = os.environ.get('CFLAGS_host', '').split()
++ cflags_cc = os.environ.get('CXXFLAGS_host', '').split()
++ ldflags = os.environ.get('LDFLAGS_host', '').split()
+ include_dirs = [root_gen_dir, SRC_ROOT]
+ libs = []
+
diff --git a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch b/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch
deleted file mode 100644
index ccd43e21..00000000
--- a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From db56cd0fd185a9f3858f5aa6e95b24e63dee119f Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Fri, 3 Oct 2014 03:52:11 +0200
-Subject: [PATCH] <chromium> base.gypi: include atomicops_internals_x86_gcc.cc
- when building for x64 arch
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/3rdparty/chromium/base/base.gypi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/chromium/base/base.gypi b/src/3rdparty/chromium/base/base.gypi
-index 63c3f76..331c975 100644
---- a/src/3rdparty/chromium/base/base.gypi
-+++ b/src/3rdparty/chromium/base/base.gypi
-@@ -801,7 +801,7 @@
- ['include', '^nix/'],
- ],
- }],
-- ['use_qt==1 and target_arch=="ia32"', {
-+ ['use_qt==1 and target_arch=="ia32" or target_arch=="x64"', {
- 'sources/': [
- ['include', 'atomicops_internals_x86_gcc.cc'],
- ],
diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
index 9187a331..78a78f8b 100644
--- a/recipes-qt/qt5/qtwebengine_git.bb
+++ b/recipes-qt/qt5/qtwebengine_git.bb
@@ -14,6 +14,7 @@ LIC_FILES_CHKSUM = " \
DEPENDS += " \
ninja-native \
+ yasm-native \
qtwebchannel \
qtbase qtdeclarative qtxmlpatterns qtquickcontrols \
qtlocation \
@@ -23,8 +24,8 @@ DEPENDS += " \
${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \
"
-DEPENDS += "yasm-native"
EXTRA_QMAKEVARS_PRE += "GYP_CONFIG+=use_system_yasm GYP_CONFIG+=generate_character_data=0"
+EXTRA_QMAKEVARS_CONFIGURE += "-feature-system-ninja -no-feature-system-gn"
# To use system ffmpeg you need to enable also libwebp, opus, vpx
# Only depenedencies available in oe-core are enabled by default
@@ -61,35 +62,33 @@ def gettext_oeconf(d):
require qt5.inc
require qt5-git.inc
-export NINJA_PATH="${STAGING_BINDIR_NATIVE}/ninja"
-
do_configure() {
- # replace LD with CXX, to workaround a possible gyp inheritssue?
- export LD="${CXX}"
- export CC="${CC}"
- export CXX="${CXX}"
- export CC_host="gcc"
- export CXX_host="g++"
- export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}"
- export QMAKE_CACHE_EVAL="${PACKAGECONFIG_CONFARGS}"
-
# Disable autodetection from sysroot:
- sed -i 's/packagesExist([^)]*vpx[^)]*):/false:/g; s/config_libvpx:/false:/g; s/config_srtp:/false:/g; s/config_snappy:/false:/g; s/packagesExist(nss):/false:/g; s/packagesExist(minizip, zlib):/false:/g; s/packagesExist(libwebp,libwebpdemux):/false:/g; s/packagesExist(libxml-2.0,libxslt):/false:/g; s/^ *packagesExist($$package):/false:/g' ${S}/tools/qmake/mkspecs/features/configure.prf
+ sed -e 's/packagesExist([^)]*vpx[^)]*):/false:/g'\
+ -e 's/config_libvpx:/false:/g' \
+ -e 's/config_srtp:/false:/g' \
+ -e 's/config_snappy:/false:/g' \
+ -e 's/packagesExist(nss):/false:/g' \
+ -e 's/packagesExist(minizip, zlib):/false:/g' \
+ -e 's/packagesExist(libwebp,libwebpdemux):/false:/g' \
+ -e 's/packagesExist(libxml-2.0,libxslt):/false:/g'\
+ -e 's/^ *packagesExist($$package):/false:/g' \
+ -i ${S}/tools/qmake/mkspecs/features/configure.prf
# qmake can't find the OE_QMAKE_* variables on it's own so directly passing them as
# arguments here
- ${OE_QMAKE_QMAKE} -r ${EXTRA_QMAKEVARS_PRE} ${S} \
- QMAKE_CXX="${OE_QMAKE_CXX}" QMAKE_CC="${OE_QMAKE_CC}" \
+ ${OE_QMAKE_QMAKE} ${EXTRA_QMAKEVARS_PRE} ${S} \
+ QMAKE_CXX="${OE_QMAKE_CXX}" \
+ QMAKE_CC="${OE_QMAKE_CC}" \
QMAKE_LINK="${OE_QMAKE_LINK}" \
QMAKE_CFLAGS="${OE_QMAKE_CFLAGS}" \
QMAKE_CXXFLAGS="${OE_QMAKE_CXXFLAGS}" \
- QMAKE_AR="${OE_QMAKE_AR} cqs" \
- -after ${EXTRA_QMAKEVARS_POST}
+ -after ${EXTRA_QMAKEVARS_POST} -- \
+ ${EXTRA_QMAKEVARS_CONFIGURE}
}
do_install_append() {
- rmdir ${D}${OE_QMAKE_PATH_PLUGINS}/${BPN} ${D}${OE_QMAKE_PATH_PLUGINS} || true
- sed -i 's@ -Wl,--start-group.*-Wl,--end-group@@g; s@-L${B}[^ ]* @ @g' ${D}${libdir}/pkgconfig/Qt5WebEngineCore.pc
+ sed -i 's@ -Wl,--start-group.*-Wl,--end-group@@g; s@[^ ]*${B}[^ ]* @@g' ${D}${libdir}/pkgconfig/Qt5WebEngineCore.pc
}
PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
@@ -102,7 +101,7 @@ RDEPENDS_${PN}-examples += " \
qtdeclarative-qmlplugins \
"
-QT_MODULE_BRANCH_CHROMIUM = "53-based"
+QT_MODULE_BRANCH_CHROMIUM = "55-based"
SRC_URI += " \
${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \
@@ -111,12 +110,12 @@ SRC_URI += " \
file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
file://0004-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch \
file://0005-Include-dependency-to-QCoreApplication-translate.patch \
- file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
file://0002-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch \
+ file://0001-Force-host-toolchain-configuration.patch \
"
-SRCREV_qtwebengine = "cd475d5727becd6ec4e7605d335721355e049354"
-SRCREV_chromium = "cd3417bc8b5bae4cdc04a9dd714adadacc03b28d"
+SRCREV_qtwebengine = "29afdb0a34e425728ccf85b8421e9b1aadb22f45"
+SRCREV_chromium = "049134677a607781ab9508e7b769b2055d714543"
SRCREV = "${SRCREV_qtwebengine}"
SRCREV_FORMAT = "qtwebengine_chromium"