SCsub 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env python
  2. Import('env')
  3. javascript_files = [
  4. 'audio_driver_javascript.cpp',
  5. 'http_client_javascript.cpp',
  6. 'javascript_eval.cpp',
  7. 'javascript_main.cpp',
  8. 'os_javascript.cpp',
  9. ]
  10. build = env.add_program(['#bin/godot${PROGSUFFIX}.js', '#bin/godot${PROGSUFFIX}.wasm'], javascript_files);
  11. js, wasm = build
  12. js_libraries = [
  13. 'http_request.js',
  14. ]
  15. for lib in js_libraries:
  16. env.Append(LINKFLAGS=['--js-library', env.File(lib).path])
  17. env.Depends(build, js_libraries)
  18. js_modules = [
  19. 'id_handler.js',
  20. ]
  21. for module in js_modules:
  22. env.Append(LINKFLAGS=['--pre-js', env.File(module).path])
  23. env.Depends(build, js_modules)
  24. wrapper_start = env.File('pre.js')
  25. wrapper_end = env.File('engine.js')
  26. js_wrapped = env.Textfile('#bin/godot', [wrapper_start, js, wrapper_end], TEXTFILESUFFIX='${PROGSUFFIX}.wrapped.js')
  27. zip_dir = env.Dir('#bin/.javascript_zip')
  28. zip_files = env.InstallAs([
  29. zip_dir.File('godot.js'),
  30. zip_dir.File('godot.wasm'),
  31. zip_dir.File('godot.html')
  32. ], [
  33. js_wrapped,
  34. wasm,
  35. '#misc/dist/html/full-size.html'
  36. ])
  37. env.Zip('#bin/godot', zip_files, ZIPROOT=zip_dir, ZIPSUFFIX='${PROGSUFFIX}${ZIPSUFFIX}', ZIPCOMSTR='Archving $SOURCES as $TARGET')