BuildWeb.js 1.7 KB

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