123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/usr/bin/env python
- Import('env')
- javascript_files = [
- "os_javascript.cpp",
- "audio_driver_javascript.cpp",
- "javascript_main.cpp",
- "power_javascript.cpp",
- "http_client_javascript.cpp",
- "javascript_eval.cpp",
- ]
- env_javascript = env.Clone()
- if env['target'] == "profile":
- env_javascript.Append(CPPFLAGS=['-DPROFILER_ENABLED'])
- javascript_objects = []
- for x in javascript_files:
- javascript_objects.append(env_javascript.Object(x))
- env.Append(LINKFLAGS=["-s", "EXPORTED_FUNCTIONS=\"['_main','_main_after_fs_sync','_send_notification']\""])
- # output file name without file extension
- basename = "godot" + env["PROGSUFFIX"]
- target_dir = env.Dir("#bin")
- zip_dir = target_dir.Dir('.javascript_zip')
- zip_files = env.InstallAs(zip_dir.File('godot.html'), '#misc/dist/html/default.html')
- implicit_targets = []
- if env['wasm']:
- wasm = target_dir.File(basename + '.wasm')
- implicit_targets.append(wasm)
- zip_files.append(InstallAs(zip_dir.File('godot.wasm'), wasm))
- prejs = env.File('pre_wasm.js')
- else:
- asmjs_files = [target_dir.File(basename + '.asm.js'), target_dir.File(basename + '.js.mem')]
- implicit_targets.extend(asmjs_files)
- zip_files.append(InstallAs([zip_dir.File('godot.asm.js'), zip_dir.File('godot.mem')], asmjs_files))
- prejs = env.File('pre_asmjs.js')
- js = env.Program(['#bin/godot'] + implicit_targets, javascript_objects, PROGSUFFIX=env['PROGSUFFIX'] + '.js')[0];
- zip_files.append(InstallAs(zip_dir.File('godot.js'), js))
- js_libraries = []
- js_libraries.append(env.File('http_request.js'))
- for lib in js_libraries:
- env.Append(LINKFLAGS=['--js-library', lib.path])
- env.Depends(js, js_libraries)
- postjs = env.File('engine.js')
- env.Depends(js, [prejs, postjs])
- env.Append(LINKFLAGS=['--pre-js', prejs.path])
- env.Append(LINKFLAGS=['--post-js', postjs.path])
- Zip('#bin/godot', zip_files, ZIPSUFFIX=env['PROGSUFFIX'] + env['ZIPSUFFIX'], ZIPROOT=zip_dir, ZIPCOMSTR="Archving $SOURCES as $TARGET")
|