BuildAndroid.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var fs = require('fs-extra');
  2. var path = require("path");
  3. var host = require("./Host");
  4. var os = require('os');
  5. var atomicRoot = host.atomicRoot;
  6. var buildDir = host.artifactsRoot + "Build/Android/";
  7. namespace('build', function() {
  8. task('android_player', ["build:atomiceditor"], {
  9. async: true
  10. }, function() {
  11. // Clean build
  12. common.cleanCreateDir(buildDir);
  13. process.chdir(buildDir);
  14. var cmds = [];
  15. var scriptModules = host.getScriptModules("ANDROID");
  16. var bindCmd = host.atomicTool + " bind \"" + atomicRoot + "\" ";
  17. // Generate bindings for each script package
  18. for (var pkgName in scriptModules) {
  19. cmds.push(bindCmd + "Script/Packages/" + pkgName + "/ ANDROID")
  20. }
  21. if (os.platform() == "win32") {
  22. cmds.push(atomicRoot + "Build/Scripts/Windows/CompileAndroid.bat");
  23. }
  24. else {
  25. cmds.push("cmake -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=../../../Build/CMake/Toolchains/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../../");
  26. cmds.push("make -j4");
  27. }
  28. jake.exec(cmds, function() {
  29. var editorAppFolder = host.artifactsRoot + (os.platform() == "win32" ? "AtomicEditor/" : "AtomicEditor/AtomicEditor.app/");
  30. // Install Deployment
  31. fs.copySync(buildDir + "Source/AtomicPlayer/Application/libAtomicPlayer.so",
  32. editorAppFolder + "Resources/ToolData/Deployment/Android/libs/armeabi-v7a/libAtomicPlayer.so");
  33. complete();
  34. }, {
  35. printStdout: true,
  36. breakOnError : false
  37. });
  38. });
  39. }); // end of build namespace