BuildWindows.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. var fs = require('fs-extra');
  2. var path = require("path");
  3. var host = require("./Host");
  4. var atomicRoot = host.atomicRoot;
  5. var buildDir = host.artifactsRoot + "Build/Windows/";
  6. var editorAppFolder = host.artifactsRoot + "AtomicEditor/";
  7. namespace('build', function() {
  8. task('atomiceditor', {
  9. async: true
  10. }, function() {
  11. // Clean build
  12. var cleanBuild = true;
  13. if (cleanBuild) {
  14. common.cleanCreateDir(buildDir);
  15. common.cleanCreateDir(editorAppFolder);
  16. common.cleanCreateDir(host.getGenScriptRootDir("WINDOWS"));
  17. }
  18. // create the generated script files, so they will be picked up by cmake
  19. host.createGenScriptFiles("WINDOWS");
  20. process.chdir(buildDir);
  21. var cmds = [];
  22. // Build the AtomicEditor
  23. cmds.push(atomicRoot + "Build/Scripts/Windows/CompileAtomicEditor.bat");
  24. // Compile the Editor Scripts
  25. cmds.push(atomicRoot + "Build/Windows/node/node.exe " + atomicRoot + "Build/TypeScript/tsc.js -p " + atomicRoot + "Script");
  26. jake.exec(cmds, function() {
  27. // Copy the Editor binaries
  28. fs.copySync(buildDir + "Source/AtomicEditor/Release/AtomicEditor.exe",
  29. host.artifactsRoot + "AtomicEditor/AtomicEditor.exe");
  30. fs.copySync(buildDir + "Source/AtomicEditor/Release/D3DCompiler_47.dll",
  31. host.artifactsRoot + "AtomicEditor/D3DCompiler_47.dll");
  32. // We need some resources to run
  33. fs.copySync(atomicRoot + "Resources/CoreData",
  34. editorAppFolder + "Resources/CoreData");
  35. fs.copySync(atomicRoot + "Resources/PlayerData",
  36. editorAppFolder + "Resources/PlayerData");
  37. fs.copySync(atomicRoot + "Data/AtomicEditor",
  38. editorAppFolder + "Resources/ToolData");
  39. fs.copySync(atomicRoot + "Resources/EditorData",
  40. editorAppFolder + "Resources/EditorData");
  41. fs.copySync(atomicRoot + "Artifacts/Build/Resources/EditorData/AtomicEditor/EditorScripts",
  42. editorAppFolder + "Resources/EditorData/AtomicEditor/EditorScripts");
  43. console.log("Atomic Editor build to ", editorAppFolder);
  44. complete();
  45. }, {
  46. printStdout: true
  47. });
  48. });
  49. // Generate a Visual Studio 2015 solution
  50. task('genvs2015', {
  51. async: true
  52. }, function() {
  53. var slnRoot = path.resolve(atomicRoot, "") + "-Build\\";
  54. if (!fs.existsSync(slnRoot)) {
  55. jake.mkdirP(slnRoot);
  56. }
  57. // create the generated script files, so they will be picked up by cmake
  58. host.createGenScriptFiles("WINDOWS");
  59. process.chdir(slnRoot);
  60. var cmds = [];
  61. cmds.push(atomicRoot + "Build/Scripts/Windows/GenerateVS2015.bat");
  62. jake.exec(cmds, function() {
  63. console.log("\n\nVisual Studio Solution generated in ", slnRoot);
  64. complete();
  65. }, {
  66. printStdout: true
  67. });
  68. });
  69. }); // end of build namespace