BuildSettings.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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 <rapidjson/document.h>
  6. #include <rapidjson/filestream.h>
  7. #include <rapidjson/prettywriter.h>
  8. #include <Atomic/Container/Str.h>
  9. #include <Atomic/Core/Object.h>
  10. using namespace Atomic;
  11. namespace ToolCore
  12. {
  13. struct AndroidBuildSettings
  14. {
  15. String appName;
  16. String package;
  17. String targetSDKVersion;
  18. String minSDKVersion;
  19. String activityName;
  20. String companyName;
  21. String productName;
  22. };
  23. struct IOSBuildSettings
  24. {
  25. String appName;
  26. String package;
  27. String companyName;
  28. String productName;
  29. String provisionFile;
  30. String appidPrefix;
  31. };
  32. struct MacBuildSettings
  33. {
  34. String appName;
  35. String package;
  36. String companyName;
  37. String productName;
  38. };
  39. struct WindowsBuildSettings
  40. {
  41. String appName;
  42. String package;
  43. String companyName;
  44. String productName;
  45. };
  46. struct WebGLSettings
  47. {
  48. String appName;
  49. String package;
  50. String companyName;
  51. String productName;
  52. };
  53. class BuildSettings : public Object
  54. {
  55. OBJECT(BuildSettings);
  56. public:
  57. /// Construct.
  58. BuildSettings(Context* context);
  59. /// Destruct.
  60. virtual ~BuildSettings();
  61. const AndroidBuildSettings& GetAndroidSettings() { return android_; }
  62. void SetAndroidSettings(const AndroidBuildSettings& settings) { android_ = settings; }
  63. const IOSBuildSettings& GetIOSSettings() { return ios_; }
  64. void SetIOSSettings(const IOSBuildSettings& settings) { ios_ = settings; }
  65. const MacBuildSettings& GetMacSettings() { return mac_; }
  66. void SetMacSettings(const MacBuildSettings& settings) { mac_ = settings; }
  67. const WindowsBuildSettings& GetWindowsSettings() { return windows_; }
  68. void SetWindowsSettings(const WindowsBuildSettings& settings) { windows_ = settings; }
  69. const WebGLSettings& GetWebGLSettings() { return webgl_; }
  70. void SetWebGLSettings(const WebGLSettings& settings) { webgl_ = settings; }
  71. void Load(rapidjson::Value::Member* jobject);
  72. void Save(rapidjson::PrettyWriter<rapidjson::FileStream>& writer);
  73. private:
  74. String GetStringMember(rapidjson::Value::Member* jobject, const String& name);
  75. AndroidBuildSettings android_;
  76. IOSBuildSettings ios_;
  77. MacBuildSettings mac_;
  78. WindowsBuildSettings windows_;
  79. WebGLSettings webgl_;
  80. };
  81. }