Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
emscripten-core
GitHub Repository: emscripten-core/emscripten
Path: blob/main/tools/ports/sdl3_ttf.py
7085 views
1
# Copyright 2025 The Emscripten Authors. All rights reserved.
2
# Emscripten is available under two separate licenses, the MIT license and the
3
# University of Illinois/NCSA Open Source License. Both these licenses can be
4
# found in the LICENSE file.
5
6
import os
7
8
TAG = 'release-3.2.2'
9
HASH = 'c5f34d1b79492e0341c91687cde9ec315f5d6544c7ebaa7ef5d092e77ccfc363a0e702ba9c43bfa0926c54420843ccfb98b81362985fd7b4a67d09a7852b90ba'
10
11
deps = ['freetype', 'sdl3', 'harfbuzz']
12
13
variants = {'sdl3_ttf-mt': {'PTHREADS': 1}}
14
15
16
def needed(settings):
17
return settings.USE_SDL_TTF == 3
18
19
20
def get_lib_name(settings):
21
return 'libSDL3_ttf' + ('-mt' if settings.PTHREADS else '') + '.a'
22
23
24
def get(ports, settings, shared):
25
ports.fetch_project('sdl3_ttf', f'https://github.com/libsdl-org/SDL_ttf/archive/{TAG}.zip', sha512hash=HASH)
26
27
def create(final):
28
src_root = ports.get_dir('sdl3_ttf', 'SDL_ttf-' + TAG)
29
ports.install_header_dir(os.path.join(src_root, 'include'), target='.')
30
flags = ['-Wno-experimental', '-DTTF_USE_HARFBUZZ=1', '-sUSE_SDL=3', '-sUSE_FREETYPE', '-sUSE_HARFBUZZ']
31
if settings.PTHREADS:
32
flags += ['-pthread']
33
34
srcs = [
35
'src/SDL_gpu_textengine.c',
36
'src/SDL_hashtable.c',
37
'src/SDL_hashtable_ttf.c',
38
'src/SDL_renderer_textengine.c',
39
'src/SDL_surface_textengine.c',
40
'src/SDL_ttf.c',
41
]
42
43
ports.build_port(src_root, final, 'sdl3_ttf', flags=flags, srcs=srcs)
44
45
return [shared.cache.get_lib(get_lib_name(settings), create, what='port')]
46
47
48
def clear(ports, settings, shared):
49
shared.cache.erase_lib(get_lib_name(settings))
50
51
52
def process_dependencies(settings):
53
settings.USE_SDL = 3
54
settings.USE_FREETYPE = 1
55
settings.USE_HARFBUZZ = 1
56
57
58
def process_args(ports):
59
return ['-DTTF_USE_HARFBUZZ=1']
60
61
62
def show():
63
return 'sdl3_ttf (-sUSE_SDL_TTF=3 or --use-port=sdl3_ttf; zlib license)'
64
65