File: Fix-ICU-support-data-loading-with-system-ICU.patch

package info (click to toggle)
godot 4.4.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 229,428 kB
  • sloc: cpp: 1,657,504; ansic: 186,969; xml: 153,923; cs: 36,104; java: 29,122; python: 15,230; javascript: 6,211; yacc: 4,115; pascal: 818; objc: 459; sh: 459; makefile: 109
file content (38 lines) | stat: -rw-r--r-- 1,622 bytes parent folder | download
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
From: Travis Wrightsman <travis@wrightsman.org>
Date: Sun, 20 Jul 2025 19:22:53 +0200
Subject: Fix ICU support data loading with system ICU

Forwarded: https://github.com/godotengine/godot/pull/108806
Applied-Upstream: 4.5, https://github.com/godotengine/godot/commit/ed0efc4791088dfd0608476ef9d2067d46e26c3c
---
 modules/text_server_adv/SCsub               | 3 +++
 modules/text_server_adv/text_server_adv.cpp | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/modules/text_server_adv/SCsub b/modules/text_server_adv/SCsub
index 30f21eb..2cfd3b1 100644
--- a/modules/text_server_adv/SCsub
+++ b/modules/text_server_adv/SCsub
@@ -49,6 +49,9 @@ if "svg" in env.module_list:
     # Enable ThorVG static object linking.
     env_text_server_adv.Append(CPPDEFINES=["TVG_STATIC"])
 
+if env["builtin_icu4c"]:
+    env_text_server_adv.Append(CCDEFINES=["HAVE_ICU_BUILTIN"])
+
 if env["builtin_harfbuzz"]:
     env_harfbuzz = env_modules.Clone()
     env_harfbuzz.disable_warnings()
diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp
index 71bded1..6657764 100644
--- a/modules/text_server_adv/text_server_adv.cpp
+++ b/modules/text_server_adv/text_server_adv.cpp
@@ -434,7 +434,7 @@ bool TextServerAdvanced::_has(const RID &p_rid) {
 bool TextServerAdvanced::_load_support_data(const String &p_filename) {
 	_THREAD_SAFE_METHOD_
 
-#ifdef ICU_STATIC_DATA
+#if defined(ICU_STATIC_DATA) || !defined(HAVE_ICU_BUILTIN)
 	if (!icu_data_loaded) {
 		UErrorCode err = U_ZERO_ERROR;
 		u_init(&err); // Do not check for errors, since we only load part of the data.