4jcraft/targets/platform/meson.build
2026-04-05 08:18:29 +00:00

76 lines
1.9 KiB
Meson

platform_inc = include_directories('.')
_inc_dir = '../../' / inc_dir
_threads = dependency('threads')
lib_platform_core = static_library('platform_core',
files('C4JThread.cpp', 'ShutdownManager.cpp'),
include_directories: [platform_inc, include_directories('..')],
dependencies: [_threads],
cpp_args: global_cpp_args + global_cpp_defs,
)
platform_dep = declare_dependency(
link_with: lib_platform_core,
include_directories: platform_inc,
)
# SDL2-based platform implementations (formerly 4J.* modules)
if host_machine.system() == 'android'
_sdl2 = declare_dependency(
dependencies: cc.find_library('SDL2', dirs: lib_dir, required: true ),
include_directories: _inc_dir)
else
_sdl2 = dependency('sdl2')
endif
_defs = []
if get_option('renderer') == 'gles'
if host_machine.system() == 'android'
_gl = cc.find_library('GLESv3', required: true )
_egl = cc.find_library('EGL', required: true )
else
_gl = dependency('glesv2', required: true)
endif
_defs += ['-DGLES']
else
_gl = dependency('gl', required: true)
endif
deps = [
_sdl2,
_gl,
_threads,
glm_dep,
stb_dep,
]
if host_machine.system() == 'android'
deps += _egl
endif
sdl2_sources = files(
'sdl2/Input.cpp',
'sdl2/Profile.cpp',
'sdl2/Render.cpp',
'sdl2/render_stubs.cpp',
'sdl2/Storage.cpp',
)
lib_platform_sdl2 = static_library('platform_sdl2',
sdl2_sources,
include_directories: [platform_inc, include_directories('sdl2')],
dependencies: deps,
cpp_args: _defs + global_cpp_args + global_cpp_defs,
)
# Combined dependency: interfaces + SDL2 implementations
# Replaces the old render_dep, input_dep, profile_dep, storage_dep
render_dep = declare_dependency(
link_with: lib_platform_sdl2,
include_directories: [platform_inc, include_directories('sdl2')],
dependencies: deps,
)
input_dep = render_dep
profile_dep = render_dep
storage_dep = render_dep