AAPT2: Update the name of the configuration struct.
Make the Configuration struct name less ambiguous. Also ran clang-format
on the change since some lines were too long and this resulted in a
bigger diff than expected.
Test: built manually
Test: ran existing unit tests
Change-Id: I85e78041fa78d913d47a26c85ad48b05bf935a6a
diff --git a/tools/aapt2/configuration/ConfigurationParser.cpp b/tools/aapt2/configuration/ConfigurationParser.cpp
index 555cb35..0b6743c 100644
--- a/tools/aapt2/configuration/ConfigurationParser.cpp
+++ b/tools/aapt2/configuration/ConfigurationParser.cpp
@@ -42,7 +42,7 @@
using ::aapt::configuration::AndroidManifest;
using ::aapt::configuration::AndroidSdk;
using ::aapt::configuration::Artifact;
-using ::aapt::configuration::Configuration;
+using ::aapt::configuration::PostProcessingConfiguration;
using ::aapt::configuration::GlTexture;
using ::aapt::configuration::Group;
using ::aapt::configuration::Locale;
@@ -125,7 +125,7 @@
diag_(&noop_) {
}
-Maybe<Configuration> ConfigurationParser::Parse() {
+Maybe<PostProcessingConfiguration> ConfigurationParser::Parse() {
std::istringstream in(contents_);
auto doc = xml::Inflate(&in, diag_, Source("config.xml"));
@@ -157,10 +157,11 @@
XmlNodeAction& artifacts_action = root_action["artifacts"];
XmlNodeAction& groups_action = root_action["groups"];
- Configuration config;
+ PostProcessingConfiguration config;
// Helper to bind a static method to an action handler in the DOM executor.
- auto bind_handler = [&config](std::function<bool(Configuration*, Element*, IDiagnostics*)> h)
+ auto bind_handler =
+ [&config](std::function<bool(PostProcessingConfiguration*, Element*, IDiagnostics*)> h)
-> XmlNodeAction::ActionFuncWithDiag {
return std::bind(h, &config, std::placeholders::_1, std::placeholders::_2);
};
@@ -189,271 +190,259 @@
}
ConfigurationParser::ActionHandler ConfigurationParser::artifact_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- Artifact artifact{};
- for (const auto& attr : root_element->attributes) {
- if (attr.name == "name") {
- artifact.name = attr.value;
- } else if (attr.name == "abi-group") {
- artifact.abi_group = {attr.value};
- } else if (attr.name == "screen-density-group") {
- artifact.screen_density_group = {attr.value};
- } else if (attr.name == "locale-group") {
- artifact.locale_group = {attr.value};
- } else if (attr.name == "android-sdk-group") {
- artifact.android_sdk_group = {attr.value};
- } else if (attr.name == "gl-texture-group") {
- artifact.gl_texture_group = {attr.value};
- } else if (attr.name == "device-feature-group") {
- artifact.device_feature_group = {attr.value};
- } else {
- diag->Note(
- DiagMessage() << "Unknown artifact attribute: " << attr.name << " = " << attr.value);
- }
- }
- config->artifacts.push_back(artifact);
- return true;
- };
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ Artifact artifact{};
+ for (const auto& attr : root_element->attributes) {
+ if (attr.name == "name") {
+ artifact.name = attr.value;
+ } else if (attr.name == "abi-group") {
+ artifact.abi_group = {attr.value};
+ } else if (attr.name == "screen-density-group") {
+ artifact.screen_density_group = {attr.value};
+ } else if (attr.name == "locale-group") {
+ artifact.locale_group = {attr.value};
+ } else if (attr.name == "android-sdk-group") {
+ artifact.android_sdk_group = {attr.value};
+ } else if (attr.name == "gl-texture-group") {
+ artifact.gl_texture_group = {attr.value};
+ } else if (attr.name == "device-feature-group") {
+ artifact.device_feature_group = {attr.value};
+ } else {
+ diag->Note(DiagMessage() << "Unknown artifact attribute: " << attr.name << " = "
+ << attr.value);
+ }
+ }
+ config->artifacts.push_back(artifact);
+ return true;
+};
ConfigurationParser::ActionHandler ConfigurationParser::artifact_format_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- for (auto& node : root_element->children) {
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ for (auto& node : root_element->children) {
+ xml::Text* t;
+ if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
+ config->artifact_format = TrimWhitespace(t->text).to_string();
+ break;
+ }
+ }
+ return true;
+};
+
+ConfigurationParser::ActionHandler ConfigurationParser::abi_group_handler_ =
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ std::string label = GetLabel(root_element, diag);
+ if (label.empty()) {
+ return false;
+ }
+
+ auto& group = config->abi_groups[label];
+ bool valid = true;
+
+ for (auto* child : root_element->GetChildElements()) {
+ if (child->name != "abi") {
+ diag->Error(DiagMessage() << "Unexpected element in ABI group: " << child->name);
+ valid = false;
+ } else {
+ for (auto& node : child->children) {
xml::Text* t;
if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
- config->artifact_format = TrimWhitespace(t->text).to_string();
+ group.push_back(kStringToAbiMap.at(TrimWhitespace(t->text).to_string()));
break;
}
}
- return true;
- };
+ }
+ }
-ConfigurationParser::ActionHandler ConfigurationParser::abi_group_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- std::string label = GetLabel(root_element, diag);
- if (label.empty()) {
- return false;
- }
-
- auto& group = config->abi_groups[label];
- bool valid = true;
-
- for (auto* child : root_element->GetChildElements()) {
- if (child->name != "abi") {
- diag->Error(
- DiagMessage() << "Unexpected element in ABI group: " << child->name);
- valid = false;
- } else {
- for (auto& node : child->children) {
- xml::Text* t;
- if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
- group.push_back(kStringToAbiMap.at(TrimWhitespace(t->text).to_string()));
- break;
- }
- }
- }
- }
-
- return valid;
- };
+ return valid;
+};
ConfigurationParser::ActionHandler ConfigurationParser::screen_density_group_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- std::string label = GetLabel(root_element, diag);
- if (label.empty()) {
- return false;
- }
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ std::string label = GetLabel(root_element, diag);
+ if (label.empty()) {
+ return false;
+ }
- auto& group = config->screen_density_groups[label];
- bool valid = true;
+ auto& group = config->screen_density_groups[label];
+ bool valid = true;
- for (auto* child : root_element->GetChildElements()) {
- if (child->name != "screen-density") {
- diag->Error(
- DiagMessage() << "Unexpected root_element in screen density group: "
- << child->name);
- valid = false;
- } else {
- for (auto& node : child->children) {
- xml::Text* t;
- if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
- ConfigDescription config_descriptor;
- const android::StringPiece& text = TrimWhitespace(t->text);
- if (ConfigDescription::Parse(text, &config_descriptor)) {
- // Copy the density with the minimum SDK version stripped out.
- group.push_back(config_descriptor.CopyWithoutSdkVersion());
- } else {
- diag->Error(
- DiagMessage() << "Could not parse config descriptor for screen-density: "
- << text);
- valid = false;
- }
- break;
- }
+ for (auto* child : root_element->GetChildElements()) {
+ if (child->name != "screen-density") {
+ diag->Error(DiagMessage() << "Unexpected root_element in screen density group: "
+ << child->name);
+ valid = false;
+ } else {
+ for (auto& node : child->children) {
+ xml::Text* t;
+ if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
+ ConfigDescription config_descriptor;
+ const android::StringPiece& text = TrimWhitespace(t->text);
+ if (ConfigDescription::Parse(text, &config_descriptor)) {
+ // Copy the density with the minimum SDK version stripped out.
+ group.push_back(config_descriptor.CopyWithoutSdkVersion());
+ } else {
+ diag->Error(DiagMessage()
+ << "Could not parse config descriptor for screen-density: " << text);
+ valid = false;
}
+ break;
}
}
+ }
+ }
- return valid;
- };
+ return valid;
+};
ConfigurationParser::ActionHandler ConfigurationParser::locale_group_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- std::string label = GetLabel(root_element, diag);
- if (label.empty()) {
- return false;
- }
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ std::string label = GetLabel(root_element, diag);
+ if (label.empty()) {
+ return false;
+ }
- auto& group = config->locale_groups[label];
- bool valid = true;
+ auto& group = config->locale_groups[label];
+ bool valid = true;
- for (auto* child : root_element->GetChildElements()) {
- if (child->name != "locale") {
- diag->Error(
- DiagMessage() << "Unexpected root_element in screen density group: "
- << child->name);
- valid = false;
+ for (auto* child : root_element->GetChildElements()) {
+ if (child->name != "locale") {
+ diag->Error(DiagMessage() << "Unexpected root_element in screen density group: "
+ << child->name);
+ valid = false;
+ } else {
+ Locale entry;
+ for (const auto& attr : child->attributes) {
+ if (attr.name == "lang") {
+ entry.lang = {attr.value};
+ } else if (attr.name == "region") {
+ entry.region = {attr.value};
} else {
- Locale entry;
- for (const auto& attr : child->attributes) {
- if (attr.name == "lang") {
- entry.lang = {attr.value};
- } else if (attr.name == "region") {
- entry.region = {attr.value};
- } else {
- diag->Warn(DiagMessage() << "Unknown attribute: " << attr.name
- << " = " << attr.value);
- }
- }
- group.push_back(entry);
+ diag->Warn(DiagMessage() << "Unknown attribute: " << attr.name << " = " << attr.value);
}
}
+ group.push_back(entry);
+ }
+ }
- return valid;
- };
+ return valid;
+};
ConfigurationParser::ActionHandler ConfigurationParser::android_sdk_group_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- std::string label = GetLabel(root_element, diag);
- if (label.empty()) {
- return false;
- }
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ std::string label = GetLabel(root_element, diag);
+ if (label.empty()) {
+ return false;
+ }
- auto& group = config->android_sdk_groups[label];
- bool valid = true;
+ auto& group = config->android_sdk_groups[label];
+ bool valid = true;
- for (auto* child : root_element->GetChildElements()) {
- if (child->name != "android-sdk") {
- diag->Error(
- DiagMessage() << "Unexpected root_element in ABI group: " << child->name);
- valid = false;
+ for (auto* child : root_element->GetChildElements()) {
+ if (child->name != "android-sdk") {
+ diag->Error(DiagMessage() << "Unexpected root_element in ABI group: " << child->name);
+ valid = false;
+ } else {
+ AndroidSdk entry;
+ for (const auto& attr : child->attributes) {
+ if (attr.name == "minSdkVersion") {
+ entry.min_sdk_version = {attr.value};
+ } else if (attr.name == "targetSdkVersion") {
+ entry.target_sdk_version = {attr.value};
+ } else if (attr.name == "maxSdkVersion") {
+ entry.max_sdk_version = {attr.value};
} else {
- AndroidSdk entry;
- for (const auto& attr : child->attributes) {
- if (attr.name == "minSdkVersion") {
- entry.min_sdk_version = {attr.value};
- } else if (attr.name == "targetSdkVersion") {
- entry.target_sdk_version = {attr.value};
- } else if (attr.name == "maxSdkVersion") {
- entry.max_sdk_version = {attr.value};
- } else {
- diag->Warn(DiagMessage() << "Unknown attribute: " << attr.name
- << " = " << attr.value);
- }
- }
-
- // TODO: Fill in the manifest details when they are finalised.
- for (auto node : child->GetChildElements()) {
- if (node->name == "manifest") {
- if (entry.manifest) {
- diag->Warn(DiagMessage() << "Found multiple manifest tags. Ignoring duplicates.");
- continue;
- }
- entry.manifest = {AndroidManifest()};
- }
- }
-
- group.push_back(entry);
+ diag->Warn(DiagMessage() << "Unknown attribute: " << attr.name << " = " << attr.value);
}
}
- return valid;
- };
+ // TODO: Fill in the manifest details when they are finalised.
+ for (auto node : child->GetChildElements()) {
+ if (node->name == "manifest") {
+ if (entry.manifest) {
+ diag->Warn(DiagMessage() << "Found multiple manifest tags. Ignoring duplicates.");
+ continue;
+ }
+ entry.manifest = {AndroidManifest()};
+ }
+ }
+
+ group.push_back(entry);
+ }
+ }
+
+ return valid;
+};
ConfigurationParser::ActionHandler ConfigurationParser::gl_texture_group_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- std::string label = GetLabel(root_element, diag);
- if (label.empty()) {
- return false;
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ std::string label = GetLabel(root_element, diag);
+ if (label.empty()) {
+ return false;
+ }
+
+ auto& group = config->gl_texture_groups[label];
+ bool valid = true;
+
+ GlTexture result;
+ for (auto* child : root_element->GetChildElements()) {
+ if (child->name != "gl-texture") {
+ diag->Error(DiagMessage() << "Unexpected element in GL texture group: " << child->name);
+ valid = false;
+ } else {
+ for (const auto& attr : child->attributes) {
+ if (attr.name == "name") {
+ result.name = attr.value;
+ break;
+ }
}
- auto& group = config->gl_texture_groups[label];
- bool valid = true;
-
- GlTexture result;
- for (auto* child : root_element->GetChildElements()) {
- if (child->name != "gl-texture") {
- diag->Error(
- DiagMessage() << "Unexpected element in GL texture group: "
- << child->name);
+ for (auto* element : child->GetChildElements()) {
+ if (element->name != "texture-path") {
+ diag->Error(DiagMessage() << "Unexpected element in gl-texture element: " << child->name);
valid = false;
- } else {
- for (const auto& attr : child->attributes) {
- if (attr.name == "name") {
- result.name = attr.value;
- break;
- }
- }
-
- for (auto* element : child->GetChildElements()) {
- if (element->name != "texture-path") {
- diag->Error(
- DiagMessage() << "Unexpected element in gl-texture element: "
- << child->name);
- valid = false;
- continue;
- }
- for (auto& node : element->children) {
- xml::Text* t;
- if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
- result.texture_paths.push_back(TrimWhitespace(t->text).to_string());
- }
- }
+ continue;
+ }
+ for (auto& node : element->children) {
+ xml::Text* t;
+ if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
+ result.texture_paths.push_back(TrimWhitespace(t->text).to_string());
}
}
- group.push_back(result);
}
+ }
+ group.push_back(result);
+ }
- return valid;
- };
+ return valid;
+};
ConfigurationParser::ActionHandler ConfigurationParser::device_feature_group_handler_ =
- [](Configuration* config, Element* root_element, IDiagnostics* diag) -> bool {
- std::string label = GetLabel(root_element, diag);
- if (label.empty()) {
- return false;
- }
+ [](PostProcessingConfiguration* config, Element* root_element, IDiagnostics* diag) -> bool {
+ std::string label = GetLabel(root_element, diag);
+ if (label.empty()) {
+ return false;
+ }
- auto& group = config->device_feature_groups[label];
- bool valid = true;
+ auto& group = config->device_feature_groups[label];
+ bool valid = true;
- for (auto* child : root_element->GetChildElements()) {
- if (child->name != "supports-feature") {
- diag->Error(
- DiagMessage() << "Unexpected root_element in device feature group: "
- << child->name);
- valid = false;
- } else {
- for (auto& node : child->children) {
- xml::Text* t;
- if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
- group.push_back(TrimWhitespace(t->text).to_string());
- break;
- }
- }
+ for (auto* child : root_element->GetChildElements()) {
+ if (child->name != "supports-feature") {
+ diag->Error(DiagMessage() << "Unexpected root_element in device feature group: "
+ << child->name);
+ valid = false;
+ } else {
+ for (auto& node : child->children) {
+ xml::Text* t;
+ if ((t = NodeCast<xml::Text>(node.get())) != nullptr) {
+ group.push_back(TrimWhitespace(t->text).to_string());
+ break;
}
}
+ }
+ }
- return valid;
- };
+ return valid;
+};
} // namespace aapt