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