ProjectBuildSettings.cpp 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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. #include <Atomic/IO/Log.h>
  8. #include <Atomic/IO/File.h>
  9. #include <Atomic/Resource/JSONFile.h>
  10. #include "ProjectBuildSettings.h"
  11. namespace ToolCore
  12. {
  13. void MacBuildSettings::Write(JSONValue& parent)
  14. {
  15. JSONValue json;
  16. json.Set("appName", appName_);
  17. json.Set("packageName", packageName_);
  18. json.Set("companyName", companyName_);
  19. json.Set("productName", productName_);
  20. parent.Set("MacBuildSettings", json);
  21. }
  22. void MacBuildSettings::Read(JSONValue& parent)
  23. {
  24. JSONValue json = parent.Get("MacBuildSettings");
  25. if (!json.IsObject())
  26. return;
  27. appName_ = json.Get("appName").GetString();
  28. packageName_ = json.Get("packageName").GetString();
  29. companyName_ = json.Get("companyName").GetString();
  30. productName_ = json.Get("productName").GetString();
  31. }
  32. void WindowsBuildSettings::Write(JSONValue& parent)
  33. {
  34. JSONValue json;
  35. json.Set("appName", appName_);
  36. json.Set("packageName", packageName_);
  37. json.Set("companyName", companyName_);
  38. json.Set("productName", productName_);
  39. parent.Set("WindowsBuildSettings", json);
  40. }
  41. void WindowsBuildSettings::Read(JSONValue& parent)
  42. {
  43. JSONValue json = parent.Get("WindowsBuildSettings");
  44. if (!json.IsObject())
  45. return;
  46. appName_ = json.Get("appName").GetString();
  47. packageName_ = json.Get("packageName").GetString();
  48. companyName_ = json.Get("companyName").GetString();
  49. productName_ = json.Get("productName").GetString();
  50. }
  51. void WebBuildSettings::Write(JSONValue& parent)
  52. {
  53. JSONValue json;
  54. json.Set("appName", appName_);
  55. json.Set("packageName", packageName_);
  56. json.Set("companyName", companyName_);
  57. json.Set("productName", productName_);
  58. parent.Set("WebBuildSettings", json);
  59. }
  60. void WebBuildSettings::Read(JSONValue& parent)
  61. {
  62. JSONValue json = parent.Get("WebBuildSettings");
  63. if (!json.IsObject())
  64. return;
  65. appName_ = json.Get("appName").GetString();
  66. packageName_ = json.Get("packageName").GetString();
  67. companyName_ = json.Get("companyName").GetString();
  68. productName_ = json.Get("productName").GetString();
  69. }
  70. void AndroidBuildSettings::Write(JSONValue& parent)
  71. {
  72. JSONValue json;
  73. json.Set("appName", appName_);
  74. json.Set("packageName", packageName_);
  75. json.Set("companyName", companyName_);
  76. json.Set("productName", productName_);
  77. json.Set("targetSDKVersion", targetSDKVersion_);
  78. json.Set("minSDKVersion", minSDKVersion_);
  79. json.Set("activityName", activityName_);
  80. parent.Set("AndroidBuildSettings", json);
  81. }
  82. void AndroidBuildSettings::Read(JSONValue& parent)
  83. {
  84. JSONValue json = parent.Get("AndroidBuildSettings");
  85. if (!json.IsObject())
  86. return;
  87. appName_ = json.Get("appName").GetString();
  88. packageName_ = json.Get("packageName").GetString();
  89. companyName_ = json.Get("companyName").GetString();
  90. productName_ = json.Get("productName").GetString();
  91. targetSDKVersion_ = json.Get("targetSDKVersion").GetString();
  92. minSDKVersion_ = json.Get("minSDKVersion").GetString();
  93. activityName_ = json.Get("activityName").GetString();
  94. }
  95. void IOSBuildSettings::Write(JSONValue& parent)
  96. {
  97. JSONValue json;
  98. json.Set("appName", appName_);
  99. json.Set("packageName", packageName_);
  100. json.Set("companyName", companyName_);
  101. json.Set("productName", productName_);
  102. json.Set("provisionFile", provisionFile_);
  103. json.Set("appIDPrefix", appidPrefix_);
  104. parent.Set("IOSBuildSettings", json);
  105. }
  106. void IOSBuildSettings::Read(JSONValue& parent)
  107. {
  108. JSONValue json = parent.Get("IOSBuildSettings");
  109. if (!json.IsObject())
  110. return;
  111. appName_ = json.Get("appName").GetString();
  112. packageName_ = json.Get("packageName").GetString();
  113. companyName_ = json.Get("companyName").GetString();
  114. productName_ = json.Get("productName").GetString();
  115. provisionFile_ = json.Get("provisionFile").GetString();;
  116. appidPrefix_ = json.Get("appIDPrefix").GetString();;
  117. }
  118. ProjectBuildSettings::ProjectBuildSettings(Context* context) : Object(context),
  119. macBuildSettings_(new MacBuildSettings()),
  120. windowsBuildSettings_(new WindowsBuildSettings()),
  121. webBuildSettings_(new WebBuildSettings()),
  122. androidBuildSettings_(new AndroidBuildSettings()),
  123. iosBuildSettings_(new IOSBuildSettings())
  124. {
  125. }
  126. ProjectBuildSettings::~ProjectBuildSettings()
  127. {
  128. }
  129. bool ProjectBuildSettings::Load(const String& path)
  130. {
  131. SharedPtr<File> file(new File(context_, path));
  132. if (!file->IsOpen())
  133. return false;
  134. SharedPtr<JSONFile> jsonFile(new JSONFile(context_));
  135. bool result = jsonFile->Load(*file);
  136. file->Close();
  137. if (!result)
  138. return false;
  139. JSONValue root = jsonFile->GetRoot();
  140. if (!root.IsObject())
  141. return false;
  142. macBuildSettings_->Read(root);
  143. windowsBuildSettings_->Read(root);
  144. webBuildSettings_->Read(root);
  145. androidBuildSettings_->Read(root);
  146. iosBuildSettings_->Read(root);
  147. return true;
  148. }
  149. void ProjectBuildSettings::Save(const String& path)
  150. {
  151. SharedPtr<JSONFile> jsonFile(new JSONFile(context_));
  152. JSONValue& root = jsonFile->GetRoot();
  153. SharedPtr<File> file(new File(context_, path, FILE_WRITE));
  154. macBuildSettings_->Write(root);
  155. windowsBuildSettings_->Write(root);
  156. webBuildSettings_->Write(root);
  157. androidBuildSettings_->Write(root);
  158. iosBuildSettings_->Write(root);
  159. jsonFile->Save(*file, String(" "));
  160. file->Close();
  161. }
  162. }