BsBuildManager.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsIReflectable.h"
  4. #include "BsModule.h"
  5. #include "BsPlatformInfo.h"
  6. namespace BansheeEngine
  7. {
  8. class BS_ED_EXPORT BuildData : public IReflectable
  9. {
  10. public:
  11. BuildData();
  12. PlatformType activePlatform;
  13. Vector<SPtr<PlatformInfo>> platformData;
  14. /************************************************************************/
  15. /* RTTI */
  16. /************************************************************************/
  17. public:
  18. friend class BuildDataRTTI;
  19. static RTTITypeBase* getRTTIStatic();
  20. virtual RTTITypeBase* getRTTI() const;
  21. };
  22. class BS_ED_EXPORT BuildManager : public Module<BuildManager>
  23. {
  24. public:
  25. BuildManager();
  26. const Vector<PlatformType>& getAvailablePlatforms() const;
  27. PlatformType getActivePlatform() const;
  28. void setActivePlatform(PlatformType type);
  29. SPtr<PlatformInfo> getActivePlatformInfo() const;
  30. SPtr<PlatformInfo> getPlatformInfo(PlatformType type) const;
  31. Vector<WString> getFrameworkAssemblies(PlatformType type) const;
  32. Path getMainExecutable(PlatformType type) const;
  33. WString getDefines(PlatformType type) const;
  34. void save(const Path& outFile);
  35. void load(const Path& inFile);
  36. private:
  37. SPtr<BuildData> mBuildData;
  38. };
  39. }