summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrej Valek <andrej.valek@siemens.com>2020-04-17 10:01:04 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2020-07-08 11:14:58 +0200
commitc9553a5d2b5fd113dd5c165f2bd47618908528a9 (patch)
tree1dbf2d9c8ad2872593cf493035a1de839b5cdade
parent1650757f4182435a63985f73e477ed80927f0eac (diff)
downloadmeta-qt5-c9553a5d2b5fd113dd5c165f2bd47618908528a9.tar.gz
icu: use system library only targets
- use bundled one for native/v8 internal builds Complete system ICU library using requires ICU dev package be installed on host. Enabling dependency on native package is not enough due to V8 hosttools toolchain. V8 toolchain is not using native sysroot, only a host packages. On the other hand webenegine does not produce external native artifacts. So external system ICU linking is not needed. Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-rwxr-xr-xrecipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch90
-rw-r--r--recipes-qt/qt5/qtwebengine_git.bb3
2 files changed, 92 insertions, 1 deletions
diff --git a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch
new file mode 100755
index 00000000..8ca1dace
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch
@@ -0,0 +1,90 @@
1From fe811323fbe787264b15b83d027947926477f0c2 Mon Sep 17 00:00:00 2001
2From: Andrej Valek <andrej.valek@siemens.com>
3Date: Fri, 17 Apr 2020 09:43:32 +0200
4Subject: [PATCH] icu: use system library only targets
5
6 - use bundled one for native/v8 internal builds
7
8Complete system ICU library using requires ICU dev package
9be installed on host. Enabling dependency on native package
10is not enough due to V8 hosttools toolchain. V8 toolchain
11is not using native sysroot, only a host packages.
12On the other hand webenegine does not produce external
13native artifacts. So external system ICU linking is not
14needed.
15
16Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
17---
18 src/3rdparty/chromium/third_party/icu/BUILD.gn | 18 ++++++++++++++----
19 1 file changed, 14 insertions(+), 4 deletions(-)
20
21diff --git a/src/3rdparty/chromium/third_party/icu/BUILD.gn b/src/3rdparty/chromium/third_party/icu/BUILD.gn
22index 97073f09787..5d293ca628d 100644
23--- a/src/3rdparty/chromium/third_party/icu/BUILD.gn
24+++ b/src/3rdparty/chromium/third_party/icu/BUILD.gn
25@@ -7,9 +7,13 @@ import("//build/config/host_byteorder.gni")
26 import("//build/config/linux/pkg_config.gni")
27 import("//build/shim_headers.gni")
28 import("//third_party/icu/config.gni")
29+import("//v8/snapshot_toolchain.gni")
30
31 declare_args() {
32 use_system_icu = false
33+
34+ # Use only target icu library, when system using is enabled
35+ use_system_icu_target_only = false
36 }
37
38 if (is_android) {
39@@ -20,6 +24,12 @@ if (is_mac) {
40 import("//build/config/sanitizers/sanitizers.gni")
41 }
42
43+if (use_system_icu) {
44+ # Use system library only for target, otherwise use bundled
45+ if ((current_toolchain != host_toolchain) && (current_toolchain != v8_snapshot_toolchain)) {
46+ use_system_icu_target_only = true
47+ }
48+}
49 # Meta target that includes both icuuc and icui18n. Most targets want both.
50 # You can depend on the individually if you need to.
51 group("icu") {
52@@ -1137,7 +1147,7 @@ config("system_icu_config") {
53 ]
54 }
55
56-if (use_system_icu) {
57+if (use_system_icu_target_only) {
58 pkg_config("system_icui18n") {
59 packages = [ "icu-i18n" ]
60 }
61@@ -1346,7 +1356,7 @@ shim_headers("icuuc_shim") {
62 }
63
64 config("icu_config") {
65- if (use_system_icu) {
66+ if (use_system_icu_target_only) {
67 configs = [ ":system_icu_config"]
68 } else {
69 configs = [ ":bundled_icu_config"]
70@@ -1354,7 +1364,7 @@ config("icu_config") {
71 }
72
73 group("icuuc") {
74- if (use_system_icu) {
75+ if (use_system_icu_target_only) {
76 deps = [ ":icuuc_shim" ]
77 public_configs = [
78 ":system_icu_config",
79@@ -1366,7 +1376,7 @@ group("icuuc") {
80 }
81
82 group("icui18n") {
83- if (use_system_icu) {
84+ if (use_system_icu_target_only) {
85 deps = [ ":icui18n_shim" ]
86 public_configs = [
87 ":system_icu_config",
88--
892.20.1
90
diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
index bd377569..9b7aa514 100644
--- a/recipes-qt/qt5/qtwebengine_git.bb
+++ b/recipes-qt/qt5/qtwebengine_git.bb
@@ -21,7 +21,7 @@ DEPENDS += " \
21 qtwebchannel \ 21 qtwebchannel \
22 qtbase qtdeclarative qtxmlpatterns qtquickcontrols qtquickcontrols2 \ 22 qtbase qtdeclarative qtxmlpatterns qtquickcontrols qtquickcontrols2 \
23 qtlocation \ 23 qtlocation \
24 libdrm fontconfig pixman openssl pango cairo icu pciutils nss \ 24 libdrm fontconfig pixman openssl pango cairo pciutils nss \
25 libcap \ 25 libcap \
26 gperf-native \ 26 gperf-native \
27 ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \ 27 ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \
@@ -149,6 +149,7 @@ QT_MODULE_BRANCH_CHROMIUM = "80-based"
149SRC_URI += " \ 149SRC_URI += " \
150 ${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \ 150 ${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \
151 file://0001-Force-host-toolchain-configuration.patch \ 151 file://0001-Force-host-toolchain-configuration.patch \
152 file://0005-icu-use-system-library-only-targets.patch \
152" 153"
153SRC_URI_append_libc-musl = "\ 154SRC_URI_append_libc-musl = "\
154 file://0002-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \ 155 file://0002-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \