JSBind.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  3. // LICENSE: Atomic Game Engine Editor and Tools EULA
  4. // Please see LICENSE_ATOMIC_EDITOR_AND_TOOLS.md in repository root for
  5. // license information: https://github.com/AtomicGameEngine/AtomicGameEngine
  6. //
  7. #include <Atomic/Core/ProcessUtils.h>
  8. #include <Atomic/IO/FileSystem.h>
  9. #include "JSBPackage.h"
  10. #include "JSBind.h"
  11. namespace ToolCore
  12. {
  13. JSBind::JSBind(Context* context) : Object(context),
  14. package_(new JSBPackage(context))
  15. {
  16. }
  17. JSBind::~JSBind()
  18. {
  19. }
  20. bool JSBind::GenerateCSharpBindings(const String& sourceRootFolder, const String& packageFolder, const String& platform)
  21. {
  22. sourceRootFolder_ = sourceRootFolder;
  23. packageFolder_ = packageFolder;
  24. platform_ = platform;
  25. package_->Load(sourceRootFolder_ + packageFolder_);
  26. String modulesFolder = "Build/Source/Generated/" + platform + "/CSharp/Packages/";
  27. modulesFolder += package_->GetName() + "/";
  28. String outputFolder = sourceRootFolder + "/" + modulesFolder;
  29. FileSystem* fs = GetSubsystem<FileSystem>();
  30. if (!fs->CreateDirs(sourceRootFolder, modulesFolder) || !fs->DirExists(outputFolder))
  31. {
  32. String error = "Unable to create bindings output folder: " + outputFolder;
  33. ErrorExit(error.CString());
  34. }
  35. package_->GenerateCSharpSource(outputFolder);
  36. return true;
  37. }
  38. bool JSBind::GenerateBindings(const String& sourceRootFolder, const String& packageFolder, const String& platform)
  39. {
  40. sourceRootFolder_ = sourceRootFolder;
  41. packageFolder_ = packageFolder;
  42. platform_ = platform;
  43. String modulesFolder = "Build/Source/Generated/" + platform + "/Javascript/Packages/";
  44. modulesFolder += package_->GetName() + "/";
  45. String outputFolder = sourceRootFolder + "/" + modulesFolder;
  46. FileSystem* fs = GetSubsystem<FileSystem>();
  47. if (!fs->CreateDirs(sourceRootFolder, modulesFolder) || !fs->DirExists(outputFolder))
  48. {
  49. String error = "Unable to create bindings output folder: " + outputFolder;
  50. ErrorExit(error.CString());
  51. }
  52. package_->GenerateSource(outputFolder);
  53. return true;
  54. }
  55. }