ProjectBuildSettings.h 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  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. #pragma once
  8. #include <Atomic/Core/Object.h>
  9. #include <Atomic/Resource/JSONValue.h>
  10. using namespace Atomic;
  11. namespace ToolCore
  12. {
  13. class MacBuildSettings : public RefCounted
  14. {
  15. REFCOUNTED(MacBuildSettings)
  16. public:
  17. MacBuildSettings() {}
  18. const String& GetAppName() const { return appName_; }
  19. const String& GetPackageName() const { return packageName_; }
  20. const String& GetCompanyName() const { return companyName_; }
  21. const String& GetProductName() const { return productName_; }
  22. void SetAppName(const String& name) { appName_ = name; }
  23. void SetPackageName(const String& packageName) { packageName_ = packageName; }
  24. void SetCompanyName(const String& companyName) { companyName_ = companyName; }
  25. void SetProductName(const String& productName) { productName_ = productName; }
  26. void Write(JSONValue& parent);
  27. void Read(JSONValue& parent);
  28. private:
  29. String appName_;
  30. String packageName_;
  31. String companyName_;
  32. String productName_;
  33. };
  34. class WebBuildSettings : public RefCounted
  35. {
  36. REFCOUNTED(WebBuildSettings)
  37. public:
  38. WebBuildSettings() {}
  39. const String& GetAppName() const { return appName_; }
  40. const String& GetPackageName() const { return packageName_; }
  41. const String& GetCompanyName() const { return companyName_; }
  42. const String& GetProductName() const { return productName_; }
  43. void SetAppName(const String& name) { appName_ = name; }
  44. void SetPackageName(const String& packageName) { packageName_ = packageName; }
  45. void SetCompanyName(const String& companyName) { companyName_ = companyName; }
  46. void SetProductName(const String& productName) { productName_ = productName; }
  47. void Write(JSONValue& parent);
  48. void Read(JSONValue& parent);
  49. private:
  50. String appName_;
  51. String packageName_;
  52. String companyName_;
  53. String productName_;
  54. };
  55. class WindowsBuildSettings : public RefCounted
  56. {
  57. REFCOUNTED(WindowsBuildSettings)
  58. public:
  59. WindowsBuildSettings() {}
  60. const String& GetAppName() const { return appName_; }
  61. const String& GetPackageName() const { return packageName_; }
  62. const String& GetCompanyName() const { return companyName_; }
  63. const String& GetProductName() const { return productName_; }
  64. void SetAppName(const String& name) { appName_ = name; }
  65. void SetPackageName(const String& packageName) { packageName_ = packageName; }
  66. void SetCompanyName(const String& companyName) { companyName_ = companyName; }
  67. void SetProductName(const String& productName) { productName_ = productName; }
  68. void Write(JSONValue& parent);
  69. void Read(JSONValue& parent);
  70. private:
  71. String appName_;
  72. String packageName_;
  73. String companyName_;
  74. String productName_;
  75. };
  76. class AndroidBuildSettings : public RefCounted
  77. {
  78. REFCOUNTED(AndroidBuildSettings)
  79. public:
  80. AndroidBuildSettings() {}
  81. const String& GetAppName() const { return appName_; }
  82. const String& GetPackageName() const { return packageName_; }
  83. const String& GetCompanyName() const { return companyName_; }
  84. const String& GetProductName() const { return productName_; }
  85. const String& GetSDKVersion() const { return targetSDKVersion_; }
  86. const String& GetMinSDKVersion() const { return minSDKVersion_; }
  87. const String& GetActivityName() const { return activityName_; }
  88. void SetAppName(const String& name) { appName_ = name; }
  89. void SetPackageName(const String& packageName) { packageName_ = packageName; }
  90. void SetCompanyName(const String& companyName) { companyName_ = companyName; }
  91. void SetProductName(const String& productName) { productName_ = productName; }
  92. void SetSDKVersion(const String& value) { targetSDKVersion_ = value; }
  93. void SetMinSDKVersion(const String& value) { minSDKVersion_ = value; }
  94. void SetActivityName(const String& value) { activityName_ = value; }
  95. void Write(JSONValue& parent);
  96. void Read(JSONValue& parent);
  97. private:
  98. String appName_;
  99. String packageName_;
  100. String companyName_;
  101. String productName_;
  102. String targetSDKVersion_;
  103. String minSDKVersion_;
  104. String activityName_;
  105. };
  106. class IOSBuildSettings : public RefCounted
  107. {
  108. REFCOUNTED(IOSBuildSettings)
  109. public:
  110. IOSBuildSettings() {}
  111. const String& GetAppName() const { return appName_; }
  112. const String& GetPackageName() const { return packageName_; }
  113. const String& GetCompanyName() const { return companyName_; }
  114. const String& GetProductName() const { return productName_; }
  115. const String& GetProvisionFile() const { return provisionFile_; }
  116. const String& GetAppIDPrefix() const { return appidPrefix_; }
  117. void SetAppName(const String& name) { appName_ = name; }
  118. void SetPackageName(const String& packageName) { packageName_ = packageName; }
  119. void SetCompanyName(const String& companyName) { companyName_ = companyName; }
  120. void SetProductName(const String& productName) { productName_ = productName; }
  121. void SetProvisionFile(const String& value) { provisionFile_ = value; }
  122. void SetAppIDPrefix(const String& value) { appidPrefix_ = value; }
  123. void Write(JSONValue& parent);
  124. void Read(JSONValue& parent);
  125. private:
  126. String appName_;
  127. String packageName_;
  128. String companyName_;
  129. String productName_;
  130. String provisionFile_;
  131. String appidPrefix_;
  132. };
  133. class ProjectBuildSettings : public Object
  134. {
  135. OBJECT(ProjectBuildSettings);
  136. public:
  137. /// Construct.
  138. ProjectBuildSettings(Context* context);
  139. /// Destruct.
  140. virtual ~ProjectBuildSettings();
  141. MacBuildSettings* GetMacBuildSettings() { return macBuildSettings_; }
  142. WindowsBuildSettings* GetWindowsBuildSettings() { return windowsBuildSettings_; }
  143. WebBuildSettings* GetWebBuildSettings() { return webBuildSettings_; }
  144. AndroidBuildSettings* GetAndroidBuildSettings() { return androidBuildSettings_; }
  145. IOSBuildSettings* GetIOSBuildSettings() { return iosBuildSettings_; }
  146. bool Load(const String& path);
  147. void Save(const String& path);
  148. private:
  149. SharedPtr<MacBuildSettings> macBuildSettings_;
  150. SharedPtr<WindowsBuildSettings> windowsBuildSettings_;
  151. SharedPtr<WebBuildSettings> webBuildSettings_;
  152. SharedPtr<AndroidBuildSettings> androidBuildSettings_;
  153. SharedPtr<IOSBuildSettings> iosBuildSettings_;
  154. };
  155. }