4jcraft/targets/platform/meson.build
2026-04-07 17:32:19 -05:00

53 lines
1.5 KiB
Meson

platform_inc = include_directories('.')
_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)
_sdl2 = dependency('sdl2')
_defs = []
if get_option('renderer') == 'gles'
_gl = dependency('glesv2', required: true)
_defs += ['-DGLES']
else
_gl = dependency('gl', required: true)
endif
sdl2_sources = files(
'input/sdl2/SDL2Input.cpp',
'profile/stub/StubProfile.cpp',
'storage/stub/StubStorage.cpp',
'renderer/gl/GLRenderer.cpp',
'renderer/gl/render_stubs.cpp',
'fs/std/StdFilesystem.cpp',
)
lib_platform_sdl2 = static_library('platform_sdl2',
sdl2_sources,
include_directories: [platform_inc],
dependencies: [_sdl2, _gl, _threads, glm_dep, stb_dep, java_dep],
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],
dependencies: [_sdl2, _gl, _threads, glm_dep],
)
input_dep = render_dep
profile_dep = render_dep
storage_dep = render_dep