AAPT2: Add default no-compress extensions
Change-Id: Iff0820993059bcab59208b07601b2c6d8d953c89
diff --git a/tools/aapt2/Flags.cpp b/tools/aapt2/Flags.cpp
index 2033a4c..3731ac7 100644
--- a/tools/aapt2/Flags.cpp
+++ b/tools/aapt2/Flags.cpp
@@ -69,6 +69,17 @@
return *this;
}
+Flags& Flags::optionalFlagList(const StringPiece& name, const StringPiece& description,
+ std::unordered_set<std::string>* value) {
+ auto func = [value](const StringPiece& arg) -> bool {
+ value->insert(arg.toString());
+ return true;
+ };
+
+ mFlags.push_back(Flag{ name.toString(), description.toString(), func, false, 1, false });
+ return *this;
+}
+
Flags& Flags::optionalSwitch(const StringPiece& name, const StringPiece& description,
bool* value) {
auto func = [value](const StringPiece& arg) -> bool {
diff --git a/tools/aapt2/Flags.h b/tools/aapt2/Flags.h
index ce7a485..b092855 100644
--- a/tools/aapt2/Flags.h
+++ b/tools/aapt2/Flags.h
@@ -23,6 +23,7 @@
#include <functional>
#include <ostream>
#include <string>
+#include <unordered_set>
#include <vector>
namespace aapt {
@@ -37,6 +38,8 @@
Maybe<std::string>* value);
Flags& optionalFlagList(const StringPiece& name, const StringPiece& description,
std::vector<std::string>* value);
+ Flags& optionalFlagList(const StringPiece& name, const StringPiece& description,
+ std::unordered_set<std::string>* value);
Flags& optionalSwitch(const StringPiece& name, const StringPiece& description,
bool* value);
diff --git a/tools/aapt2/link/Link.cpp b/tools/aapt2/link/Link.cpp
index ded661e..1417fd6 100644
--- a/tools/aapt2/link/Link.cpp
+++ b/tools/aapt2/link/Link.cpp
@@ -73,7 +73,7 @@
bool outputToDirectory = false;
bool autoAddOverlay = false;
bool doNotCompressAnything = false;
- std::vector<std::string> extensionsToNotCompress;
+ std::unordered_set<std::string> extensionsToNotCompress;
Maybe<std::string> privateSymbols;
ManifestFixerOptions manifestFixerOptions;
std::unordered_set<std::string> products;
@@ -287,7 +287,7 @@
bool keepRawValues = false;
bool doNotCompressAnything = false;
bool updateProguardSpec = false;
- std::vector<std::string> extensionsToNotCompress;
+ std::unordered_set<std::string> extensionsToNotCompress;
};
class ResourceFileFlattener {
@@ -1728,6 +1728,15 @@
}
}
+ // Populate some default no-compress extensions that are already compressed.
+ options.extensionsToNotCompress.insert({
+ ".jpg", ".jpeg", ".png", ".gif",
+ ".wav", ".mp2", ".mp3", ".ogg", ".aac",
+ ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
+ ".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
+ ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
+ ".amr", ".awb", ".wma", ".wmv", ".webm", ".mkv"});
+
// Turn off auto versioning for static-libs.
if (options.staticLib) {
options.noAutoVersion = true;