ManifestHal: add "override" attribute
"override" is a boolean attribute on <hal> tags
that suggest the <hal> tag can override any existing <hal>
tags, even if there is a major version conflict.
Test: libvintf_test
Bug: 69051162
Change-Id: I388dc15b9e45170b6c9778f4e7efc8fd27869892
diff --git a/parse_xml.cpp b/parse_xml.cpp
index 9a09eae..62ba763 100644
--- a/parse_xml.cpp
+++ b/parse_xml.cpp
@@ -596,10 +596,14 @@
appendChild(root, transportArchConverter(hal.transportArch, d));
appendChildren(root, versionConverter, hal.versions, d);
appendChildren(root, halInterfaceConverter, iterateValues(hal.interfaces), d);
+ if (hal.isOverride) {
+ appendAttr(root, "override", hal.isOverride);
+ }
}
bool buildObject(ManifestHal *object, NodeType *root) const override {
std::vector<HalInterface> interfaces;
if (!parseOptionalAttr(root, "format", HalFormat::HIDL, &object->format) ||
+ !parseOptionalAttr(root, "override", false, &object->isOverride) ||
!parseTextElement(root, "name", &object->name) ||
!parseOptionalChild(root, transportArchConverter, {}, &object->transportArch) ||
!parseChildren(root, versionConverter, &object->versions) ||