BuildWeb.js 1.8 KB

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