BuildSystem.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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/Context.h>
  8. #include <Atomic/Core/StringUtils.h>
  9. #include <Atomic/IO/FileSystem.h>
  10. #include <Atomic/IO/Log.h>
  11. #include "../ToolSystem.h"
  12. #include "../Project/Project.h"
  13. #include "../Project/ProjectUserPrefs.h"
  14. #include "BuildSystem.h"
  15. #include "BuildEvents.h"
  16. namespace ToolCore
  17. {
  18. BuildSystem::BuildSystem(Context* context) :
  19. Object(context)
  20. {
  21. }
  22. BuildSystem::~BuildSystem()
  23. {
  24. }
  25. bool BuildSystem::StartNextBuild()
  26. {
  27. if (!queuedBuilds_.Size())
  28. return false;
  29. currentBuild_ = queuedBuilds_.Front();
  30. queuedBuilds_.PopFront();
  31. currentBuild_->Build(buildPath_);
  32. return true;
  33. }
  34. void BuildSystem::QueueBuild(BuildBase* buildBase)
  35. {
  36. queuedBuilds_.Push(SharedPtr<BuildBase>(buildBase));
  37. }
  38. void BuildSystem::BuildComplete(PlatformID platform, const String &buildFolder, bool success, const String& buildMessage)
  39. {
  40. VariantMap eventData;
  41. eventData[BuildComplete::P_PLATFORMID] = (unsigned) platform;
  42. eventData[BuildComplete::P_BUILDFOLDER] = buildFolder;
  43. eventData[BuildComplete::P_SUCCESS] = success;
  44. eventData[BuildComplete::P_MESSAGE] = buildMessage;
  45. SendEvent(E_BUILDCOMPLETE, eventData);
  46. currentBuild_ = 0;
  47. }
  48. }