diff options
author | 2015-10-20 19:49:53 +0000 | |
---|---|---|
committer | 2015-10-20 19:49:53 +0000 | |
commit | 91bbbcf9a990d0dee20741143e0687d3b3d647f5 (patch) | |
tree | c9a345b491fb9f494ecf0ab927c23dad7a5499a5 /tools/aapt2/ResourceParser.h | |
parent | a66682bceb5606a9f17b03b43402ddfaf8c77956 (diff) | |
parent | 9ba47d813075fcb05c5e1532c137c93b394631cb (diff) |
Merge "Filter products during compile phase"
Diffstat (limited to 'tools/aapt2/ResourceParser.h')
-rw-r--r-- | tools/aapt2/ResourceParser.h | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/tools/aapt2/ResourceParser.h b/tools/aapt2/ResourceParser.h index 514e55852407..5ccd47f2b6a7 100644 --- a/tools/aapt2/ResourceParser.h +++ b/tools/aapt2/ResourceParser.h @@ -31,13 +31,24 @@ namespace aapt { +struct ParsedResource; + +struct ResourceParserOptions { + /** + * Optional product name by which to filter resources. + * This is like a preprocessor definition in that we strip out resources + * that don't match before we compile them. + */ + Maybe<std::u16string> product; +}; + /* * Parses an XML file for resources and adds them to a ResourceTable. */ class ResourceParser { public: ResourceParser(IDiagnostics* diag, ResourceTable* table, const Source& source, - const ConfigDescription& config); + const ConfigDescription& config, const ResourceParserOptions& options = {}); ResourceParser(const ResourceParser&) = delete; // No copy. @@ -62,25 +73,24 @@ private: std::unique_ptr<Item> parseXml(XmlPullParser* parser, uint32_t typeMask, bool allowRawValue); bool parseResources(XmlPullParser* parser); - bool parseString(XmlPullParser* parser, const ResourceNameRef& resourceName); - bool parseColor(XmlPullParser* parser, const ResourceNameRef& resourceName); - bool parsePrimitive(XmlPullParser* parser, const ResourceNameRef& resourceName); - bool parsePublic(XmlPullParser* parser, const StringPiece16& name); - bool parseAttr(XmlPullParser* parser, const ResourceNameRef& resourceName); - std::unique_ptr<Attribute> parseAttrImpl(XmlPullParser* parser, - ResourceName* resourceName, - bool weak); + bool parseString(XmlPullParser* parser, ParsedResource* outResource); + bool parseColor(XmlPullParser* parser, ParsedResource* outResource); + bool parsePrimitive(XmlPullParser* parser, ParsedResource* outResource); + bool parsePublic(XmlPullParser* parser, ParsedResource* outResource); + bool parseAttr(XmlPullParser* parser, ParsedResource* outResource); + bool parseAttrImpl(XmlPullParser* parser, ParsedResource* outResource, bool weak); Maybe<Attribute::Symbol> parseEnumOrFlagItem(XmlPullParser* parser, const StringPiece16& tag); - bool parseStyle(XmlPullParser* parser, const ResourceNameRef& resourceName); + bool parseStyle(XmlPullParser* parser, ParsedResource* outResource); bool parseStyleItem(XmlPullParser* parser, Style* style); - bool parseDeclareStyleable(XmlPullParser* parser, const ResourceNameRef& resourceName); - bool parseArray(XmlPullParser* parser, const ResourceNameRef& resourceName, uint32_t typeMask); - bool parsePlural(XmlPullParser* parser, const ResourceNameRef& resourceName); + bool parseDeclareStyleable(XmlPullParser* parser, ParsedResource* outResource); + bool parseArray(XmlPullParser* parser, ParsedResource* outResource, uint32_t typeMask); + bool parsePlural(XmlPullParser* parser, ParsedResource* outResource); IDiagnostics* mDiag; ResourceTable* mTable; Source mSource; ConfigDescription mConfig; + ResourceParserOptions mOptions; }; } // namespace aapt |