sdl3-ttf-src 3.2.3

Source code of the SDL3_ttf library
Documentation
# Save the local path
SDL_TTF_LOCAL_PATH := $(call my-dir)

# Enable this if you want to use PlutoSVG for emoji support
SUPPORT_PLUTOSVG ?= true
PLUTOSVG_LIBRARY_PATH := external/plutosvg
PLUTOVG_LIBRARY_PATH := external/plutovg

# Enable this if you want to use HarfBuzz
SUPPORT_HARFBUZZ ?= true
HARFBUZZ_LIBRARY_PATH := external/harfbuzz

FREETYPE_LIBRARY_PATH := external/freetype

# Build freetype library
ifneq ($(FREETYPE_LIBRARY_PATH),)
    include $(SDL_TTF_LOCAL_PATH)/$(FREETYPE_LIBRARY_PATH)/Android.mk
endif

# Build the library
ifeq ($(SUPPORT_HARFBUZZ),true)
    include $(SDL_TTF_LOCAL_PATH)/$(HARFBUZZ_LIBRARY_PATH)/Android.mk
endif

# Restore local path
LOCAL_PATH := $(SDL_TTF_LOCAL_PATH)
include $(CLEAR_VARS)

LOCAL_MODULE := SDL3_ttf

LOCAL_SRC_FILES := \
	src/SDL_ttf.c.neon \
	src/SDL_hashtable.c \
	src/SDL_hashtable_ttf.c \
	src/SDL_gpu_textengine.c \
	src/SDL_renderer_textengine.c \
	src/SDL_surface_textengine.c

LOCAL_C_INCLUDES += $(LOCAL_PATH)/include

LOCAL_CFLAGS += -O2

LOCAL_LDFLAGS := -Wl,--no-undefined -Wl,--version-script=$(LOCAL_PATH)/src/SDL_ttf.sym

ifneq ($(FREETYPE_LIBRARY_PATH),)
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(FREETYPE_LIBRARY_PATH)/include
    LOCAL_STATIC_LIBRARIES += freetype
endif

ifeq ($(SUPPORT_HARFBUZZ),true)
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(HARFBUZZ_LIBRARY_PATH)/src
    LOCAL_CFLAGS += -DTTF_USE_HARFBUZZ
    LOCAL_STATIC_LIBRARIES += harfbuzz
endif

ifeq ($(SUPPORT_PLUTOSVG),true)
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(PLUTOVG_LIBRARY_PATH)/include
    LOCAL_C_FLAGS += -DTTF_USE_PLUTOSVG -DPLUTOSVG_HAS_FREETYPE
    LOCAL_SRC_FILES += \
        external/plutosvg/source/plutosvg.c \
        external/plutovg/source/plutovg-blend.c \
        external/plutovg/source/plutovg-canvas.c \
        external/plutovg/source/plutovg-font.c \
        external/plutovg/source/plutovg-ft-math.c \
        external/plutovg/source/plutovg-ft-raster.c \
        external/plutovg/source/plutovg-ft-stroker.c \
        external/plutovg/source/plutovg-matrix.c \
        external/plutovg/source/plutovg-paint.c \
        external/plutovg/source/plutovg-path.c \
        external/plutovg/source/plutovg-rasterize.c \
        external/plutovg/source/plutovg-surface.c
endif

LOCAL_SHARED_LIBRARIES := SDL3

LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/include

include $(BUILD_SHARED_LIBRARY)

###########################
#
# SDL3_ttf static library
#
###########################

LOCAL_MODULE := SDL3_ttf_static

LOCAL_MODULE_FILENAME := libSDL3_ttf

LOCAL_LDLIBS :=
LOCAL_EXPORT_LDLIBS :=

include $(BUILD_STATIC_LIBRARY)