GenWindowsEditor.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. var fs = require('fs-extra');
  2. var bcommon = require("./BuildCommon");
  3. var host = require("./Host");
  4. var atomicRoot = bcommon.atomicRoot;
  5. var srcDir = bcommon.artifactsRoot + "Build/EditorData/";
  6. var dstDir = bcommon.artifactsRoot + "Build/WindowsEditor/";
  7. namespace('build', function() {
  8. task('genwindowsinstaller', ["build:genwindowseditor"], {
  9. async: true
  10. }, function() {
  11. console.log("Creating Windows Installer");
  12. bcommon.cleanCreateDir(bcommon.artifactsRoot + "Build/WindowsInstaller");
  13. var installerName = "AtomicEditorSetup_" + bcommon.buildSHA + ".exe";
  14. var installerPath = bcommon.artifactsRoot + "Build/WindowsInstaller/" + installerName;
  15. var nsisDefines = "/DATOMIC_ROOT=" + atomicRoot;
  16. nsisDefines += " /DEDITOR_VERSION=1";
  17. nsisDefines += " /DINSTALLER_NAME=" + installerName;
  18. var makeNSISCmd = atomicRoot + "\\Build\\CIScripts\\Windows\\CreateInstaller.bat";
  19. makeNSISCmd += " " + nsisDefines + " " + atomicRoot + "/Build/CIScripts/Windows/Installer/AtomicEditor.nsi";
  20. var editorExe = dstDir + "AtomicEditor/AtomicEditor.exe";
  21. var pfxFile = process.env.ATOMIC_PFX_FILE;
  22. var pfxPW = process.env.ATOMIC_PFX_PW;
  23. var signBaseCmd = "signtool.exe sign /f " + pfxFile;
  24. signBaseCmd += " /p " + pfxPW;
  25. signBaseCmd += " /t http://timestamp.verisign.com/scripts/timestamp.dll";
  26. signBaseCmd += " /v ";
  27. var signEditorCmd = signBaseCmd + editorExe;
  28. var signInstallerCmd = signBaseCmd + installerPath;
  29. var cmds = [signEditorCmd, makeNSISCmd, signInstallerCmd];
  30. jake.exec(cmds, function() {
  31. complete();
  32. }, {
  33. printStdout: true
  34. });
  35. });
  36. task('genwindowseditor', {
  37. async: true
  38. }, function() {
  39. bcommon.cleanCreateDir(dstDir);
  40. process.chdir(srcDir);
  41. cmds = [ atomicRoot + "Build/Windows/7z/7z.exe x -y EditorData.zip"];
  42. jake.exec(cmds, function() {
  43. console.log("Generating Windows Editor");
  44. var editorAppFolder = dstDir + "AtomicEditor/";
  45. fs.copySync(srcDir + "EditorBinaries/Windows/AtomicEditor.exe",
  46. editorAppFolder + "AtomicEditor.exe");
  47. fs.copySync(srcDir + "EditorBinaries/Windows/D3DCompiler_47.dll",
  48. editorAppFolder + "D3DCompiler_47.dll");
  49. fs.copySync(srcDir + "Resources/CoreData",
  50. editorAppFolder + "Resources/CoreData");
  51. fs.copySync(srcDir + "Resources/EditorData",
  52. editorAppFolder + "Resources/EditorData");
  53. fs.copySync(srcDir + "Resources/PlayerData",
  54. editorAppFolder + "Resources/PlayerData");
  55. fs.copySync(srcDir + "Resources/ToolData",
  56. editorAppFolder + "Resources/ToolData");
  57. fs.copySync(srcDir + "AtomicExamples",
  58. editorAppFolder + "Resources/ToolData/AtomicExamples");
  59. fs.copySync(srcDir + "Docs",
  60. editorAppFolder + "Resources/ToolData/Docs/JSDocs");
  61. // CEF
  62. var cefRoot = atomicRoot + "Submodules/CEF/Windows/64bit/";
  63. fs.copySync(cefRoot + "Release", editorAppFolder);
  64. fs.copySync(cefRoot + "Resources", editorAppFolder);
  65. complete();
  66. }, {
  67. printStdout: true
  68. });
  69. });
  70. }); // end of build namespace