BuildSystem.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  2. // Please see LICENSE.md in repository root for license information
  3. // https://github.com/AtomicGameEngine/AtomicGameEngine
  4. #pragma once
  5. #include <Atomic/Core/Object.h>
  6. #include "BuildSettings.h"
  7. #include "BuildBase.h"
  8. using namespace Atomic;
  9. #include "UI/Modal/UIBuildComplete.h"
  10. namespace AtomicEditor
  11. {
  12. class BuildSystem : public Object
  13. {
  14. OBJECT(BuildSystem);
  15. public:
  16. /// Construct.
  17. BuildSystem(Context* context);
  18. /// Destruct.
  19. virtual ~BuildSystem();
  20. BuildSettings* GetBuildSettings() { return buildSettings_; }
  21. void LoadBuildSettings(rapidjson::Value::Member* jobject);
  22. void SaveBuildSettings(rapidjson::PrettyWriter<rapidjson::FileStream>& writer);
  23. void ClearBuildCompleteUI();
  24. void BuildComplete(AEEditorPlatform platform,const String& buildFolder, bool success = true, bool fail3D = false);
  25. private:
  26. void DoBuildMac(const String& buildPath);
  27. void DoBuildWindows(const String& buildPath);
  28. void DoBuildAndroid(const String& buildPath);
  29. void DoBuildIOS(const String& buildPath);
  30. void DoBuildWeb(const String& buildPath);
  31. SharedPtr<BuildSettings> buildSettings_;
  32. SharedPtr<BuildBase> currentBuild_;
  33. SharedPtr<UIBuildComplete> uiBuildComplete_;
  34. void HandleEditorBuild(StringHash eventType, VariantMap& eventData);
  35. void HandleEditorShutdown(StringHash eventType, VariantMap& eventData);
  36. };
  37. }