JSBind.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "../Atomic.h"
  2. #include "../Core/ProcessUtils.h"
  3. #include "../Resource/ResourceCache.h"
  4. #include "JSBind.h"
  5. #include "JSBindings.h"
  6. #ifdef WIN32
  7. #include <Windows.h>
  8. #endif
  9. using namespace Atomic;
  10. SharedPtr<Context> JSBind::context_;
  11. SharedPtr<FileSystem> JSBind::fileSystem_;
  12. SharedPtr<Engine> JSBind::engine_;
  13. #ifdef WIN32
  14. String JSBind::ROOT_FOLDER("C:/Dev/atomic/AtomicRuntime");
  15. #else
  16. String JSBind::ROOT_FOLDER("/Users/josh/Dev/atomic/AtomicRuntime");
  17. #endif
  18. void JSBind::Initialize()
  19. {
  20. context_ = new Context();
  21. fileSystem_ = new FileSystem(context_);
  22. engine_ = new Engine(context_);
  23. }
  24. void Run(const Vector<String>& arguments)
  25. {
  26. JSBind::Initialize();
  27. VariantMap engineParameters;
  28. engineParameters["Headless"] = true;
  29. engineParameters["WorkerThreads"] = false;
  30. engineParameters["LogName"] = String::EMPTY;
  31. JSBind::engine_->Initialize(engineParameters);
  32. ResourceCache* cache = JSBind::context_->GetSubsystem<ResourceCache>();
  33. cache->AddResourceDir(JSBind::ROOT_FOLDER + "/Source/Tools/JSBind");
  34. JSBindings* bindings = new JSBindings();
  35. bindings->Initialize();
  36. bindings->ParseHeaders();
  37. }
  38. int main(int argc, char** argv)
  39. {
  40. Vector<String> arguments;
  41. #ifdef WIN32
  42. arguments = ParseArguments(GetCommandLineW());
  43. #else
  44. arguments = ParseArguments(argc, argv);
  45. #endif
  46. Run(arguments);
  47. return 0;
  48. }