X11TK: Add Arabic/Hebrew/Farsi support by increasing font size slightly and using FriBidi. (#14134)

This commit is contained in:
eafton authored and GitHub committed 2025-10-03 19:08:24 -07:00
1 parent 49d51a0d3c
commit c2429e85ec
9 files changed
+503 -30

No files matched your search

+29
View File
@@ -511,6 +511,35 @@ macro(CheckX11)
cmake_pop_check_state()
endmacro()
macro(CheckFribidi)
if(SDL_FRIBIDI)
set(FRIBIDI_PKG_CONFIG_SPEC fribidi)
set(PC_FRIBIDI_FOUND FALSE)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_FRIBIDI IMPORTED_TARGET ${FRIBIDI_PKG_CONFIG_SPEC})
endif()
if(PC_FRIBIDI_FOUND)
set(HAVE_FRIBIDI TRUE)
set(HAVE_FRIBIDI_H 1)
sdl_sources(
"${SDL3_SOURCE_DIR}/src/core/unix/SDL_fribidi.c"
"${SDL3_SOURCE_DIR}/src/core/unix/SDL_fribidi.h"
)
if(SDL_FRIBIDI_SHARED AND NOT HAVE_SDL_LOADSO)
message(WARNING "You must have SDL_LoadObject() support for dynamic fribidi loading")
endif()
FindLibraryAndSONAME("fribidi" LIBDIRS ${PC_FRIBIDI_LIBRARY_DIRS})
if(SDL_FRIBIDI_SHARED AND FRIBIDI_LIB AND HAVE_SDL_LOADSO)
set(SDL_FRIBIDI_DYNAMIC "\"${FRIBIDI_LIB_SONAME}\"")
set(HAVE_FRIBIDI_SHARED TRUE)
sdl_include_directories(PRIVATE SYSTEM $<TARGET_PROPERTY:PkgConfig::PC_FRIBIDI,INTERFACE_INCLUDE_DIRECTORIES>)
else()
sdl_link_dependency(fribidi LIBS PkgConfig::PC_FRIBIDI PKG_CONFIG_PREFIX PC_FRIBIDI PKG_CONFIG_SPECS ${FRIBIDI_PKG_CONFIG_SPEC})
endif()
endif()
endif()
endmacro()
macro(WaylandProtocolGen _SCANNER _CODE_MODE _XML _PROTL)
set(_WAYLAND_PROT_C_CODE "${CMAKE_CURRENT_BINARY_DIR}/wayland-generated-protocols/${_PROTL}-protocol.c")
set(_WAYLAND_PROT_H_CODE "${CMAKE_CURRENT_BINARY_DIR}/wayland-generated-protocols/${_PROTL}-client-protocol.h")