Support compiling demos in wasm build
This commit is contained in:
parent
d1c48e4c5f
commit
3eb4a40c39
11 changed files with 139 additions and 43 deletions
|
|
@ -8,28 +8,61 @@ demos_inc = include_directories('source/')
|
|||
external_inc = include_directories('external/sources/')
|
||||
|
||||
# Argumesnts
|
||||
not_wasm = host_machine.cpu_family() != 'wasm32'
|
||||
versions = ['BindSDL_Image','SDL_208', 'BindBC_Static', 'BindSDL_Static']
|
||||
|
||||
# Dependencies
|
||||
bindbc_loader_dep = dependency('bindbc-loader')
|
||||
bindbc_sdl_dep = dependency('bindbc-sdl')
|
||||
cimgui_dep = dependency('cimgui')
|
||||
sdl2_dep = dependency('SDL2')
|
||||
sdl2_image_dep = dependency('SDL2_image')
|
||||
sdl2_dep = dependency('SDL2', required: not_wasm) # On wasm delivered by Emscripten
|
||||
sdl2_image_dep = dependency('SDL2_image', required: not_wasm)
|
||||
|
||||
subdir('utils') # Utils library
|
||||
|
||||
executable('decs-demos', [demos_src, external_src],
|
||||
include_directories : [demos_inc, external_inc],
|
||||
d_module_versions : versions,
|
||||
link_with : [ecs_lib, ecs_utils_lib],
|
||||
dependencies : [
|
||||
bindbc_loader_dep,
|
||||
bindbc_sdl_dep,
|
||||
cimgui_dep,
|
||||
decs_dep,
|
||||
ecs_utils_dep,
|
||||
sdl2_dep,
|
||||
sdl2_image_dep,
|
||||
],
|
||||
)
|
||||
deps = [
|
||||
bindbc_loader_dep,
|
||||
bindbc_sdl_dep,
|
||||
cimgui_dep,
|
||||
decs_dep,
|
||||
ecs_utils_dep,
|
||||
sdl2_dep,
|
||||
sdl2_image_dep,
|
||||
]
|
||||
|
||||
if not_wasm
|
||||
exe = executable('decs-demos', [demos_src, external_src],
|
||||
include_directories : [demos_inc, external_inc],
|
||||
d_module_versions : versions,
|
||||
link_with : [ecs_lib, ecs_utils_lib],
|
||||
dependencies : deps,
|
||||
)
|
||||
|
||||
test('basic-tests', exe)
|
||||
else
|
||||
decs_demos_lib = library('decs-demos', [demos_src, external_src],
|
||||
include_directories : [demos_inc, external_inc],
|
||||
d_module_versions : versions,
|
||||
dependencies : deps,
|
||||
)
|
||||
cimgui_lib = subproject('cimgui').get_variable('lib')
|
||||
sdl2_lib = subproject('bindbc-sdl').get_variable('lib')
|
||||
file_packager = find_program('file_packager')
|
||||
|
||||
# Pack assets
|
||||
assets_path = meson.source_root() / 'demos/assets@assets'
|
||||
packed_assets = custom_target('packed-assets-web',
|
||||
command: [file_packager, 'demos/assets.data', '--preload', assets_path, '--js-output=@OUTPUT@'],
|
||||
output: ['assets.js'],
|
||||
build_by_default: true,
|
||||
)
|
||||
|
||||
wasm_web = custom_target('decs-demos-wasm-web',
|
||||
command: [emcc, args_wasm, '--pre-js', packed_assets, '-o', '@OUTPUT@', '@INPUT@'],
|
||||
input: [sdl2_lib, ecs_lib, decs_demos_lib, ecs_utils_lib, cimgui_lib],
|
||||
output: ['game.html'],
|
||||
build_by_default: true,
|
||||
)
|
||||
summary('decs-demoswasm-index', wasm_web.full_path())
|
||||
endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue