summaryrefslogtreecommitdiff
path: root/www/chromium/files/patch-build_linux_unbundle_icu.gn
blob: 571e7d758fad9732d3464fd6d160eadc25927384 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--- build/linux/unbundle/icu.gn.orig	2025-01-15 09:18:26 UTC
+++ build/linux/unbundle/icu.gn
@@ -17,6 +17,15 @@ config("icu_config") {
     "USING_SYSTEM_ICU=1",
     "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
 
+    # As of icu 73 C++ nullptr, char16_t, override, final and noexcept are used
+    # instead of defines. These definitions can be removed when the bundled icu
+    # gets updated to 73. For more details, see:
+    # https://unicode-org.atlassian.net/browse/ICU-21833 and
+    # https://github.com/unicode-org/icu/commit/28643799377ecf654564f6f31854b02788cebe33
+    "U_FINAL=final",
+    "U_NOEXCEPT=noexcept",
+    "U_OVERRIDE=override",
+
     # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
     # on classes through the U_COMMON_API and U_I18N_API macros (among others).
     # When linking against the system ICU library, we want its symbols to have
@@ -34,6 +43,9 @@ config("icu_config") {
     # to define U_IMPORT to have the same value as U_EXPORT. For more details,
     # please see: https://crbug.com/822820
     "U_IMPORT=U_EXPORT",
+
+    # Unbreak with icu 76 where private symbols are picked up
+    "U_HIDE_DRAFT_API",
   ]
 }
 
@@ -46,6 +58,14 @@ pkg_config("system_icuuc") {
 }
 
 source_set("icui18n") {
+  deps = [ ":icui18n_shim" ]
+  public_configs = [
+    ":icu_config",
+    ":system_icui18n",
+  ]
+}
+
+source_set("icui18n_hidden_visibility") {
   deps = [ ":icui18n_shim" ]
   public_configs = [
     ":icu_config",