BuildWeb.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. var fs = require('fs-extra');
  2. var bcommon = require("./BuildCommon");
  3. var host = require("./Host");
  4. var buildDir = bcommon.artifactsRoot + "Build/Web/";
  5. namespace('build', function() {
  6. task('web_player', {
  7. async: true
  8. }, function() {
  9. var atomicTool = host.getAtomicToolBinary();
  10. var playerBuildDir = buildDir + "AtomicPlayer/";
  11. bcommon.cleanCreateDir(playerBuildDir);
  12. process.chdir(playerBuildDir);
  13. var cmds = [
  14. atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/Atomic/ WEB",
  15. atomicTool + " bind " + bcommon.atomicRoot + " Script/Packages/AtomicPlayer/ WEB",
  16. "cmake -DEMSCRIPTEN=1 -DATOMIC_BUILD_2D=1 -DCMAKE_TOOLCHAIN_FILE=" + bcommon.atomicRoot + "Build/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../../../",
  17. "make -j4",
  18. "cd ./Source/AtomicPlayer/Application && mv ./AtomicPlayer ./AtomicPlayer.bc && " +
  19. // -s ERROR_ON_UNDEFINED_SYMBOLS=1 (disabled for pthread errors currently on incoming)
  20. "emcc -O3 -s USE_PTHREADS=0 -s ASM_JS=1 -s VERBOSE=0 -s USE_SDL=2 -s TOTAL_MEMORY=134217728 -s AGGRESSIVE_VARIABLE_ELIMINATION=1 -s NO_EXIT_RUNTIME=1 ./AtomicPlayer.bc -o ./AtomicPlayer.html"
  21. ]
  22. jake.exec(cmds, function() {
  23. var webPlayerBinary = playerBuildDir + "Source/AtomicPlayer/Application/AtomicPlayer.js";
  24. var webPlayerMemFile = playerBuildDir + "Source/AtomicPlayer/Application/AtomicPlayer.html.mem";
  25. fs.copySync(webPlayerBinary, buildDir + "Bin/AtomicPlayer.js");
  26. fs.copySync(webPlayerMemFile, buildDir + "Bin/AtomicPlayer.html.mem");
  27. console.log("Built Web Player");
  28. complete();
  29. }, {
  30. printStdout: true
  31. });
  32. });
  33. }); // end of build namespace