summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
authorHenri Beauchamp <sldev@free.fr>2024-03-13 13:57:39 +0100
committerAndrey Lihatskiy <alihatskiy@productengine.com>2024-03-14 01:47:14 +0200
commit2f452d06e6964b0edf26b0b3f6eaa156e3fa2d48 (patch)
tree18019a0f11af858e2f76ca19908bc7fc27bb8741 /indra/cmake
parent6ed3a1670cc976975942c1c7e57fb30298669ab7 (diff)
Proposal #2 to restore how UI/dialogs used to render by prioritizing fallback fonts.
With the emojis support, a new font was added, which not only provides emojis but also fancy colorful replacements for UTF-8 characters that used to be supported by our fallback (monochrome) fonts: this causes discrepancies and unwanted/undesired changes in scripted objects menus (e.g. an empty circle or square may render as a black, full one, a heart may render red instead of white), not to mention the larger font size used by the emoji characters... This patch restores the aspect of such menus/dialogs/UI elements with UTF-8 characters that *are* supported by the usual fallback fonts (fonts which may also vary from one viewer to another, and from one OS to another), so that everything keeps working/rendering as it always did so far, while not impairing the use of new colorful emojis. This second proposal ensures that: - "genuine" emojis (in the 0x1f000-0x1ffff range), will *always* be rendered using the new emojis font (this solves, for example, the monochrome "yellow faces" issue seen with some characters in my first proposal). - Special UTF-8 characters (in the 0x2000-0x32FF range) which have been used by scripters so far, will render as they used to, using the monochrome fallback fonts (this repairs scripted dialogs menus). - Remaining special characters, that do not have a corresponding glyph in the monochrome font, but do have one in the emojis font, will use the latter font to render. It also got the nice side-effect of removing the dependency on the ICU4C library. Note however that the recent commit: https://github.com/secondlife/viewer/commit/326055ba82c22fedde186c6a56bafd4fe87e613a will need to be reverted to allow this patch to actually fix scripted dialogs. Also, some cleanup might be needed in skins/default/xui/*/emoji_characters.xml to remove from it the special UTF-8 characters that will no longer be rendered with fanciful colors, but instead with the monochrome font glyphs.
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/CMakeLists.txt1
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake9
-rw-r--r--indra/cmake/ICU4C.cmake23
3 files changed, 0 insertions, 33 deletions
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 05c51c018d..cb3b77300a 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -30,7 +30,6 @@ set(cmake_SOURCE_FILES
GoogleMock.cmake
Havok.cmake
Hunspell.cmake
- ICU4C.cmake
JsonCpp.cmake
LLAddBuildTest.cmake
LLAppearance.cmake
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 9f79c13a97..7938d4f54b 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -62,15 +62,6 @@ if(WINDOWS)
uriparser.dll
)
- # ICU4C (same filenames for 32 and 64 bit builds)
- set(release_files ${release_files} icudt48.dll)
- set(release_files ${release_files} icuin48.dll)
- set(release_files ${release_files} icuio48.dll)
- set(release_files ${release_files} icule48.dll)
- set(release_files ${release_files} iculx48.dll)
- set(release_files ${release_files} icutu48.dll)
- set(release_files ${release_files} icuuc48.dll)
-
# OpenSSL
if(ADDRESS_SIZE EQUAL 64)
set(release_files ${release_files} libcrypto-1_1-x64.dll)
diff --git a/indra/cmake/ICU4C.cmake b/indra/cmake/ICU4C.cmake
deleted file mode 100644
index 7b27665483..0000000000
--- a/indra/cmake/ICU4C.cmake
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-include_guard()
-
-add_library( ll::icu4c INTERFACE IMPORTED )
-
-
-use_system_binary(icu4c)
-use_prebuilt_binary(icu4c)
-if (WINDOWS)
- target_link_libraries( ll::icu4c INTERFACE icuuc)
-elseif(DARWIN)
- target_link_libraries( ll::icu4c INTERFACE icuuc)
-#elseif(LINUX)
-## target_link_libraries( ll::icu4c INTERFACE )
-else()
- message(FATAL_ERROR "Invalid platform")
-endif()
-
-target_include_directories( ll::icu4c SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/unicode )
-
-use_prebuilt_binary(dictionaries)