1*4882a593SmuzhiyunFrom 8a0c927cdc9705e2a1c29d63c87d32e8cb089510 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Andrej Valek <andrej.valek@siemens.com>
3*4882a593SmuzhiyunDate: Fri, 17 Apr 2020 09:43:32 +0200
4*4882a593SmuzhiyunSubject: [PATCH] chromium: icu: use system library only targets
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun - use bundled one for native/v8 internal builds
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunComplete system ICU library using requires ICU dev package
9*4882a593Smuzhiyunbe installed on host. Enabling dependency on native package
10*4882a593Smuzhiyunis not enough due to V8 hosttools toolchain. V8 toolchain
11*4882a593Smuzhiyunis not using native sysroot, only a host packages.
12*4882a593SmuzhiyunOn the other hand webenegine does not produce external
13*4882a593Smuzhiyunnative artifacts. So external system ICU linking is not
14*4882a593Smuzhiyunneeded.
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunUpstream-Status: Pending
17*4882a593SmuzhiyunSigned-off-by: Andrej Valek <andrej.valek@siemens.com>
18*4882a593SmuzhiyunSigned-off-by: Martin Jansa <Martin.Jansa@gmail.com>
19*4882a593Smuzhiyun---
20*4882a593Smuzhiyun chromium/third_party/icu/BUILD.gn | 18 ++++++++++++++----
21*4882a593Smuzhiyun 1 file changed, 14 insertions(+), 4 deletions(-)
22*4882a593Smuzhiyun
23*4882a593Smuzhiyundiff --git a/chromium/third_party/icu/BUILD.gn b/chromium/third_party/icu/BUILD.gn
24*4882a593Smuzhiyunindex 2430d3e48e5..5d00226667d 100644
25*4882a593Smuzhiyun--- a/chromium/third_party/icu/BUILD.gn
26*4882a593Smuzhiyun+++ b/chromium/third_party/icu/BUILD.gn
27*4882a593Smuzhiyun@@ -8,9 +8,13 @@ import("//build/config/linux/pkg_config.gni")
28*4882a593Smuzhiyun import("//build/shim_headers.gni")
29*4882a593Smuzhiyun import("//third_party/icu/config.gni")
30*4882a593Smuzhiyun import("//third_party/icu/sources.gni")
31*4882a593Smuzhiyun+import("//v8/gni/snapshot_toolchain.gni")
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun declare_args() {
34*4882a593Smuzhiyun   use_system_icu = false
35*4882a593Smuzhiyun+
36*4882a593Smuzhiyun+  # Use only target icu library, when system using is enabled
37*4882a593Smuzhiyun+  use_system_icu_target_only = false
38*4882a593Smuzhiyun }
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun if (is_android) {
41*4882a593Smuzhiyun@@ -24,6 +28,12 @@ if (is_mac && !icu_is_in_fuchsia) {
42*4882a593Smuzhiyun assert(!icu_disable_thin_archive || !is_component_build,
43*4882a593Smuzhiyun        "icu_disable_thin_archive only works in static library builds")
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun+if (use_system_icu) {
46*4882a593Smuzhiyun+  # Use system library only for target, otherwise use bundled
47*4882a593Smuzhiyun+  if ((current_toolchain != host_toolchain) && (current_toolchain != v8_snapshot_toolchain)) {
48*4882a593Smuzhiyun+    use_system_icu_target_only = true
49*4882a593Smuzhiyun+  }
50*4882a593Smuzhiyun+}
51*4882a593Smuzhiyun # Meta target that includes both icuuc and icui18n. Most targets want both.
52*4882a593Smuzhiyun # You can depend on the individually if you need to.
53*4882a593Smuzhiyun group("icu") {
54*4882a593Smuzhiyun@@ -413,7 +423,7 @@ config("system_icu_config") {
55*4882a593Smuzhiyun   }
56*4882a593Smuzhiyun }
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun-if (use_system_icu) {
59*4882a593Smuzhiyun+if (use_system_icu_target_only) {
60*4882a593Smuzhiyun   pkg_config("system_icui18n") {
61*4882a593Smuzhiyun     packages = [ "icu-i18n" ]
62*4882a593Smuzhiyun   }
63*4882a593Smuzhiyun@@ -626,7 +636,7 @@ shim_headers("icuuc_shim") {
64*4882a593Smuzhiyun }
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun config("icu_config") {
67*4882a593Smuzhiyun-  if (use_system_icu) {
68*4882a593Smuzhiyun+  if (use_system_icu_target_only) {
69*4882a593Smuzhiyun     configs = [ ":system_icu_config"]
70*4882a593Smuzhiyun   } else {
71*4882a593Smuzhiyun     configs = [ ":bundled_icu_config"]
72*4882a593Smuzhiyun@@ -634,7 +644,7 @@ config("icu_config") {
73*4882a593Smuzhiyun }
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun group("icuuc") {
76*4882a593Smuzhiyun-  if (use_system_icu) {
77*4882a593Smuzhiyun+  if (use_system_icu_target_only) {
78*4882a593Smuzhiyun     deps = [ ":icuuc_shim" ]
79*4882a593Smuzhiyun     public_configs = [
80*4882a593Smuzhiyun       ":system_icu_config",
81*4882a593Smuzhiyun@@ -646,7 +656,7 @@ group("icuuc") {
82*4882a593Smuzhiyun }
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun group("icui18n") {
85*4882a593Smuzhiyun-  if (use_system_icu) {
86*4882a593Smuzhiyun+  if (use_system_icu_target_only) {
87*4882a593Smuzhiyun     deps = [ ":icui18n_shim" ]
88*4882a593Smuzhiyun     public_configs = [
89*4882a593Smuzhiyun       ":system_icu_config",
90