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

This commit is contained in:
eafton
2025-10-04 05:08:24 +03:00
committed by GitHub
parent 49d51a0d3c
commit c2429e85ec
9 changed files with 503 additions and 30 deletions

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")