# Files demos_src = files() external_src = files() subdir('source') subdir('external') demos_inc = include_directories('source/') external_inc = include_directories('external/sources/') # Argumesnts not_wasm = host_machine.cpu_family() != 'wasm32' versions = ['BindSDL_Image','SDL_209', 'BindBC_Static', 'BindSDL_Static', 'MM_USE_POSIX_THREADS', 'ECSEmscripten'] # Dependencies bindbc_loader_dep = dependency('bindbc-loader') bindbc_sdl_dep = dependency('bindbc-sdl') cimgui_dep = dependency('cimgui') 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 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: ['ecs_demo.html'], build_by_default: true, ) wasm_web_mt = custom_target('decs-demos-wasm-web-mt', command: [emcc, args_wasm, '-s', 'USE_PTHREADS=1', '--pre-js', packed_assets, '-o', '@OUTPUT@', '@INPUT@'], input: [sdl2_lib, ecs_lib, decs_demos_lib, ecs_utils_lib, cimgui_lib], output: ['ecs_demo_mt.js'], build_by_default: true, ) summary('decs-demoswasm-index', wasm_web.full_path()) endif