#!/usr/bin/env python Import('env') javascript_files = [ 'audio_driver_javascript.cpp', 'http_client_javascript.cpp', 'javascript_eval.cpp', 'javascript_main.cpp', 'os_javascript.cpp', ] build = env.add_program(['#bin/godot${PROGSUFFIX}.js', '#bin/godot${PROGSUFFIX}.wasm'], javascript_files); js, wasm = build js_libraries = [ 'http_request.js', ] for lib in js_libraries: env.Append(LINKFLAGS=['--js-library', env.File(lib).path]) env.Depends(build, js_libraries) js_modules = [ 'id_handler.js', ] for module in js_modules: env.Append(LINKFLAGS=['--pre-js', env.File(module).path]) env.Depends(build, js_modules) wrapper_start = env.File('pre.js') wrapper_end = env.File('engine.js') js_wrapped = env.Textfile('#bin/godot', [wrapper_start, js, wrapper_end], TEXTFILESUFFIX='${PROGSUFFIX}.wrapped.js') zip_dir = env.Dir('#bin/.javascript_zip') zip_files = env.InstallAs([ zip_dir.File('godot.js'), zip_dir.File('godot.wasm'), zip_dir.File('godot.html') ], [ js_wrapped, wasm, '#misc/dist/html/full-size.html' ]) env.Zip('#bin/godot', zip_files, ZIPROOT=zip_dir, ZIPSUFFIX='${PROGSUFFIX}${ZIPSUFFIX}', ZIPCOMSTR='Archving $SOURCES as $TARGET')