ee99cd42d5
Add missing semicolumns in engine.js Add optional extra args to JS Engine.startGame Remove loader.js, explicit noExitRuntime. Also add onExit callback (undocumented in emscripten)
63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
#!/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_targets = ["#bin/godot${PROGSUFFIX}.js", "#bin/godot${PROGSUFFIX}.wasm"]
|
|
if env["threads_enabled"]:
|
|
build_targets.append("#bin/godot${PROGSUFFIX}.worker.js")
|
|
|
|
build = env.add_program(build_targets, javascript_files)
|
|
|
|
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)
|
|
|
|
engine = [
|
|
"engine/preloader.js",
|
|
"engine/utils.js",
|
|
"engine/engine.js",
|
|
]
|
|
externs = [env.File("#platform/javascript/engine/externs.js")]
|
|
js_engine = env.CreateEngineFile("#bin/godot${PROGSUFFIX}.engine.js", engine, externs)
|
|
env.Depends(js_engine, externs)
|
|
|
|
wrap_list = [
|
|
build[0],
|
|
js_engine,
|
|
]
|
|
js_wrapped = env.Textfile("#bin/godot", [env.File(f) for f in wrap_list], TEXTFILESUFFIX="${PROGSUFFIX}.wrapped.js")
|
|
|
|
zip_dir = env.Dir("#bin/.javascript_zip")
|
|
out_files = [zip_dir.File("godot.js"), zip_dir.File("godot.wasm"), zip_dir.File("godot.html")]
|
|
in_files = [js_wrapped, build[1], "#misc/dist/html/full-size.html"]
|
|
if env["threads_enabled"]:
|
|
in_files.append(build[2])
|
|
out_files.append(zip_dir.File("godot.worker.js"))
|
|
|
|
zip_files = env.InstallAs(out_files, in_files)
|
|
env.Zip(
|
|
"#bin/godot",
|
|
zip_files,
|
|
ZIPROOT=zip_dir,
|
|
ZIPSUFFIX="${PROGSUFFIX}${ZIPSUFFIX}",
|
|
ZIPCOMSTR="Archving $SOURCES as $TARGET",
|
|
)
|