GenEditorData.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. var fs = require('fs-extra');
  2. var bcommon = require("./BuildCommon");
  3. var host = require("./Host");
  4. var buildDir = bcommon.artifactsRoot + "Build/EditorData/";
  5. var jsDocFolder = bcommon.artifactsRoot + "JSDoc/";
  6. var atomicRoot = bcommon.atomicRoot;
  7. var atomicTool = host.getAtomicToolBinary();
  8. namespace('build', function() {
  9. task('genscriptbindings', {
  10. async: true
  11. }, function() {
  12. bcommon.cleanCreateDir(buildDir);
  13. bcommon.cleanCreateDir(jsDocFolder);
  14. var bindCmd = atomicTool + " bind \"" + atomicRoot + "\" ";
  15. var cmds = [
  16. bindCmd + "Script/Packages/Atomic/ WINDOWS",
  17. bindCmd + "Script/Packages/AtomicPlayer/ WINDOWS",
  18. bindCmd + "Script/Packages/ToolCore/ WINDOWS",
  19. bindCmd + "Script/Packages/Editor/ WINDOWS",
  20. bindCmd + "Script/Packages/AtomicNET/ WINDOWS",
  21. ];
  22. jake.exec(cmds, function() {
  23. console.log("Built Script Bindings");
  24. complete();
  25. }, {
  26. printStdout: true
  27. });
  28. });
  29. task('gendocs', ["build:genscriptbindings"], {
  30. async: true
  31. }, function() {
  32. console.log("Generating Examples & JSDocs");
  33. fs.copySync(atomicRoot + "/Docs/Readme.md", jsDocFolder + "/Readme.md");
  34. fs.copySync(atomicRoot + "/Docs/jsdoc.conf", jsDocFolder + "/jsdoc.conf");
  35. cmds = [
  36. "git clone https://github.com/AtomicGameEngine/AtomicExamples " + buildDir + "AtomicExamples && rm -rf " + buildDir + "AtomicExamples/.git",
  37. "cd " + jsDocFolder + " && npm install git+https://github.com/jsdoc3/jsdoc",
  38. "cd " + jsDocFolder + " && git clone https://github.com/AtomicGameEngine/jaguarjs-jsdoc && cd jaguarjs-jsdoc && git checkout atomic_master",
  39. "cd " + jsDocFolder + " && ./node_modules/.bin/jsdoc ./Atomic.js -t ./jaguarjs-jsdoc/ -c ./jsdoc.conf Readme.md",
  40. ];
  41. jake.exec(cmds, function() {
  42. fs.copySync(jsDocFolder + "out", buildDir + "Docs");
  43. complete();
  44. }, {
  45. printStdout: true
  46. });
  47. });
  48. task('ios_deploy', {
  49. async: true
  50. }, function() {
  51. var iosDeploybuildDir = bcommon.artifactsRoot + "Build/IOSDeploy/";
  52. bcommon.cleanCreateDir(iosDeploybuildDir);
  53. process.chdir(iosDeploybuildDir);
  54. jake.exec("git clone https://github.com/AtomicGameEngine/ios-deploy && cd ios-deploy && make ios-deploy",
  55. function() {
  56. complete();
  57. }, {
  58. printStdout: true
  59. });
  60. });
  61. task('compileeditorscripts', ["build:genscriptbindings"],{
  62. async: true
  63. }, function() {
  64. console.log("Compiling Editor Scripts");
  65. var scriptFolder = atomicRoot + "Resources/EditorData/AtomicEditor/EditorScripts/";
  66. process.chdir(atomicRoot);
  67. cmds = [
  68. atomicRoot + "Build/Mac/node/node " + atomicRoot + "/Build/TypeScript/tsc.js -p ./Script"
  69. ];
  70. jake.exec(cmds, function() {
  71. // will be copied when editor resources are copied
  72. complete();
  73. }, {
  74. printStdout: true
  75. });
  76. });
  77. task('geneditordata', ["build:compileeditorscripts", "build:ios_deploy", "build:gendocs"], {
  78. async: true
  79. }, function() {
  80. // Mac App
  81. fs.copySync(atomicRoot + "Build/CIScripts/Mac/EditorApp",
  82. buildDir + "MacApps/EditorApp");
  83. fs.copySync(atomicRoot + "Build/CIScripts/Mac/PlayerApp/",
  84. buildDir + "MacApps/PlayerApp/");
  85. // Editor Binaries
  86. fs.copySync(bcommon.artifactsRoot + "Build/Mac/Bin/AtomicEditor",
  87. buildDir + "EditorBinaries/Mac/AtomicEditor");
  88. fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/AtomicEditor.exe",
  89. buildDir + "EditorBinaries/Windows/AtomicEditor.exe");
  90. fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/D3DCompiler_47.dll",
  91. buildDir + "EditorBinaries/Windows/D3DCompiler_47.dll");
  92. // Resources
  93. fs.copySync(atomicRoot + "Resources/CoreData", buildDir + "Resources/CoreData");
  94. fs.copySync(atomicRoot + "Resources/EditorData", buildDir + "Resources/EditorData");
  95. fs.copySync(atomicRoot + "Resources/PlayerData", buildDir + "Resources/PlayerData");
  96. fs.copySync(atomicRoot + "/Data/AtomicEditor", buildDir + "Resources/ToolData");
  97. // root deployment
  98. var deployRoot = buildDir + "Deployment/";
  99. fs.copySync(atomicRoot + "/Data/AtomicEditor/Deployment/", deployRoot);
  100. // Android
  101. fs.copySync(bcommon.artifactsRoot + "Build/Android/Bin/libAtomicPlayer.so",
  102. deployRoot + "Android/libs/armeabi-v7a/libAtomicPlayer.so");
  103. // Mac
  104. fs.copySync(bcommon.artifactsRoot + "Build/Mac/Bin/AtomicPlayer",
  105. deployRoot + "MacOS/AtomicPlayer.app/Contents/MacOS/AtomicPlayer");
  106. // IOS
  107. fs.copySync(bcommon.artifactsRoot + "Build/IOSDeploy/ios-deploy/ios-deploy",
  108. deployRoot + "IOS/ios-deploy/ios-deploy");
  109. fs.copySync(bcommon.artifactsRoot + "Build/IOS/Bin/AtomicPlayer",
  110. deployRoot + "IOS/AtomicPlayer.app/AtomicPlayer");
  111. // Web
  112. fs.copySync(bcommon.artifactsRoot + "Build/Web/Bin/AtomicPlayer.js",
  113. deployRoot + "Web/AtomicPlayer.js");
  114. fs.copySync(bcommon.artifactsRoot + "Build/Web/Bin/AtomicPlayer.html.mem",
  115. deployRoot + "Web/AtomicPlayer.html.mem");
  116. // Windows
  117. fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/AtomicPlayer.exe",
  118. deployRoot + "Windows/x64/AtomicPlayer.exe");
  119. fs.copySync(bcommon.artifactsRoot + "Build/Windows/Bin/D3DCompiler_47.dll",
  120. deployRoot + "Windows/x64/D3DCompiler_47.dll");
  121. complete();
  122. process.chdir(buildDir);
  123. var cmds = ["zip -r -X ./EditorData.zip ./"];
  124. jake.exec(cmds,
  125. function() {
  126. complete();
  127. }, {
  128. printStdout: true
  129. });
  130. });
  131. }); // end of build namespace