BuildBase.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 "BuildTypes.h"
  7. using namespace Atomic;
  8. namespace AtomicEditor
  9. {
  10. class ResourcePackager;
  11. class BuildBase : public Object
  12. {
  13. OBJECT(BuildBase);
  14. public:
  15. BuildBase(Context* context);
  16. virtual ~BuildBase();
  17. virtual void Build(const String& buildPath) = 0;
  18. // some platforms may want to do their own packaging of resources
  19. virtual bool UseResourcePackager() { return true; }
  20. // add in search order, first added is first searched
  21. // will warn on name conflicts
  22. void AddResourceDir(const String& dir);
  23. void BuildLog(const String& message);
  24. void BuildWarn(const String& warning);
  25. void BuildError(const String& error);
  26. protected:
  27. void GenerateResourcePackage(const String& resourcePackagePath);
  28. void BuildResourceEntries();
  29. String buildPath_;
  30. PODVector<BuildResourceEntry*> resourceEntries_;
  31. private:
  32. Vector<String> buildLog_;
  33. Vector<String> buildWarnings_;
  34. Vector<String> buildErrors_;
  35. void ScanResourceDirectory(const String& resourceDir);
  36. SharedPtr<ResourcePackager> resourcePackager_;
  37. Vector<String> resourceDirs_;
  38. };
  39. }