BuildSettings.cpp 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  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. #include "AtomicEditor.h"
  5. #include <Atomic/Core/CoreEvents.h>
  6. #include "AtomicEditor.h"
  7. #include "BuildSettings.h"
  8. namespace AtomicEditor
  9. {
  10. BuildSettings::BuildSettings(Context* context) :
  11. Object(context)
  12. {
  13. }
  14. BuildSettings::~BuildSettings()
  15. {
  16. }
  17. String BuildSettings::GetStringMember(rapidjson::Value::Member* jobject, const String& name)
  18. {
  19. rapidjson::Value::Member* member = jobject->value.FindMember(name.CString());
  20. if (!member || !member->value.IsString())
  21. return "";
  22. return member->value.GetString();
  23. }
  24. void BuildSettings::Load(rapidjson::Value::Member* jobject)
  25. {
  26. // ANDROID ------
  27. rapidjson::Value::Member* jandroid = jobject->value.FindMember("android");
  28. if (jandroid && jandroid->value.IsObject())
  29. {
  30. android_.appName = GetStringMember(jandroid, "app_name");
  31. android_.package = GetStringMember(jandroid, "package");
  32. android_.targetSDKVersion = GetStringMember(jandroid, "target_sdk_version");
  33. android_.minSDKVersion = GetStringMember(jandroid, "min_sdk_version");
  34. android_.activityName = GetStringMember(jandroid, "activity_name");
  35. android_.companyName = GetStringMember(jandroid, "company_name");
  36. android_.productName = GetStringMember(jandroid, "product_name");
  37. }
  38. // END ANDROID ------
  39. // IOS ------
  40. rapidjson::Value::Member* jios = jobject->value.FindMember("ios");
  41. if (jios && jios->value.IsObject())
  42. {
  43. ios_.appName = GetStringMember(jios, "app_name");
  44. ios_.package = GetStringMember(jios, "package");
  45. ios_.provisionFile = GetStringMember(jios, "provision_file");
  46. ios_.companyName = GetStringMember(jios, "company_name");
  47. ios_.productName = GetStringMember(jios, "product_name");
  48. ios_.appidPrefix = GetStringMember(jios, "appid_prefix");
  49. }
  50. // END IOS ------
  51. // Mac ------
  52. rapidjson::Value::Member* jmac = jobject->value.FindMember("mac");
  53. if (jmac && jmac->value.IsObject())
  54. {
  55. mac_.appName = GetStringMember(jmac, "app_name");
  56. mac_.package = GetStringMember(jmac, "package");
  57. mac_.companyName = GetStringMember(jmac, "company_name");
  58. mac_.productName = GetStringMember(jmac, "product_name");
  59. }
  60. // END Mac ------
  61. // Windows ------
  62. rapidjson::Value::Member* jwindows = jobject->value.FindMember("windows");
  63. if (jwindows && jwindows->value.IsObject())
  64. {
  65. windows_.appName = GetStringMember(jwindows, "app_name");
  66. windows_.package = GetStringMember(jwindows, "package");
  67. windows_.companyName = GetStringMember(jwindows, "company_name");
  68. windows_.productName = GetStringMember(jwindows, "product_name");
  69. }
  70. // END Windows ------
  71. // WebGL ------
  72. rapidjson::Value::Member* jwebgl = jobject->value.FindMember("webgl");
  73. if (jwebgl && jwebgl->value.IsObject())
  74. {
  75. webgl_.appName = GetStringMember(jwebgl, "app_name");
  76. webgl_.package = GetStringMember(jwebgl, "package");
  77. webgl_.companyName = GetStringMember(jwebgl, "company_name");
  78. webgl_.productName = GetStringMember(jwebgl, "product_name");
  79. }
  80. // END WebGL ------
  81. }
  82. void BuildSettings::Save(rapidjson::PrettyWriter<rapidjson::FileStream>& writer)
  83. {
  84. writer.String("build_settings");
  85. writer.StartObject();
  86. writer.String("version");
  87. writer.Int(1);
  88. // ANDROID ------
  89. writer.String("android");
  90. writer.StartObject();
  91. writer.String("app_name");
  92. writer.String(android_.appName.CString());
  93. writer.String("package");
  94. writer.String(android_.package.CString());
  95. writer.String("target_sdk_version");
  96. writer.String(android_.targetSDKVersion.CString());
  97. writer.String("min_sdk_version");
  98. writer.String(android_.minSDKVersion.CString());
  99. writer.String("activity_name");
  100. writer.String(android_.activityName.CString());
  101. writer.String("company_name");
  102. writer.String(android_.companyName.CString());
  103. writer.String("product_name");
  104. writer.String(android_.productName.CString());
  105. writer.EndObject();
  106. // END ANDROID ------
  107. // IOS ------
  108. writer.String("ios");
  109. writer.StartObject();
  110. writer.String("app_name");
  111. writer.String(ios_.appName.CString());
  112. writer.String("package");
  113. writer.String(ios_.package.CString());
  114. writer.String("provision_file");
  115. writer.String(ios_.provisionFile.CString());
  116. writer.String("company_name");
  117. writer.String(ios_.companyName.CString());
  118. writer.String("product_name");
  119. writer.String(ios_.productName.CString());
  120. writer.String("appid_prefix");
  121. writer.String(ios_.appidPrefix.CString());
  122. writer.EndObject();
  123. // END IOS ------
  124. // Mac ------
  125. writer.String("mac");
  126. writer.StartObject();
  127. writer.String("app_name");
  128. writer.String(mac_.appName.CString());
  129. writer.String("package");
  130. writer.String(mac_.package.CString());
  131. writer.String("company_name");
  132. writer.String(mac_.companyName.CString());
  133. writer.String("product_name");
  134. writer.String(mac_.productName.CString());
  135. writer.EndObject();
  136. // END Mac ------
  137. // Windows ------
  138. writer.String("windows");
  139. writer.StartObject();
  140. writer.String("app_name");
  141. writer.String(windows_.appName.CString());
  142. writer.String("package");
  143. writer.String(windows_.package.CString());
  144. writer.String("company_name");
  145. writer.String(windows_.companyName.CString());
  146. writer.String("product_name");
  147. writer.String(windows_.productName.CString());
  148. writer.EndObject();
  149. // END Windows ------
  150. // WebGL ------
  151. writer.String("webgl");
  152. writer.StartObject();
  153. writer.String("app_name");
  154. writer.String(webgl_.appName.CString());
  155. writer.String("package");
  156. writer.String(webgl_.package.CString());
  157. writer.String("company_name");
  158. writer.String(webgl_.companyName.CString());
  159. writer.String("product_name");
  160. writer.String(webgl_.productName.CString());
  161. writer.EndObject();
  162. // END WebGL ------
  163. writer.EndObject();
  164. }
  165. }