JSBind.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. {
  15. }
  16. JSBind::~JSBind()
  17. {
  18. }
  19. bool JSBind::GenerateBindings(const String& sourceRootFolder, const String& packageFolder, const String& platform)
  20. {
  21. sourceRootFolder_ = sourceRootFolder;
  22. packageFolder_ = packageFolder;
  23. platform_ = platform;
  24. SharedPtr<JSBPackage> package (new JSBPackage(context_));
  25. package->Load(sourceRootFolder_ + packageFolder_);
  26. String modulesFolder = "Build/Source/Generated/" + platform + "/Javascript/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->GenerateSource(outputFolder);
  36. return true;
  37. }
  38. }