summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@google.com>2010-02-12 17:52:28 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2010-02-12 17:52:28 -0800
commitddcf25ea7e1b21b908da73000630c72d6fa146b4 (patch)
tree806eef7811aef6c092e269ce6c1c7081704962e9 /tools
parentde7b14f9ab3df84bcb6af0775e96cab02648cbd9 (diff)
parent2be56ccbcff9d5f7b9b3cc0fed3825d4f037ff6a (diff)
downloadframeworks_base-ddcf25ea7e1b21b908da73000630c72d6fa146b4.zip
frameworks_base-ddcf25ea7e1b21b908da73000630c72d6fa146b4.tar.gz
frameworks_base-ddcf25ea7e1b21b908da73000630c72d6fa146b4.tar.bz2
am 2be56ccb: Merge "Add --auto-add-overlay option to aapt. DO NOT MERGE" into eclair
Merge commit '2be56ccbcff9d5f7b9b3cc0fed3825d4f037ff6a' into eclair-plus-aosp * commit '2be56ccbcff9d5f7b9b3cc0fed3825d4f037ff6a': Add --auto-add-overlay option to aapt. DO NOT MERGE
Diffstat (limited to 'tools')
-rw-r--r--tools/aapt/Bundle.h5
-rw-r--r--tools/aapt/Main.cpp7
-rw-r--r--tools/aapt/ResourceTable.cpp9
-rw-r--r--tools/aapt/ResourceTable.h3
4 files changed, 17 insertions, 7 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index 77df6e5..74d269d 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -39,7 +39,7 @@ public:
mRequireLocalization(false), mPseudolocalize(false),
mValues(false),
mCompressionMethod(0), mOutputAPKFile(NULL),
- mAssetSourceDir(NULL), mProguardFile(NULL),
+ mAutoAddOverlay(false), mAssetSourceDir(NULL), mProguardFile(NULL),
mAndroidManifestFile(NULL), mPublicOutputFile(NULL),
mRClassDir(NULL), mResourceIntermediatesDir(NULL),
mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL),
@@ -84,6 +84,8 @@ public:
void setJunkPath(bool val) { mJunkPath = val; }
const char* getOutputAPKFile() const { return mOutputAPKFile; }
void setOutputAPKFile(const char* val) { mOutputAPKFile = val; }
+ bool getAutoAddOverlay() { return mAutoAddOverlay; }
+ void setAutoAddOverlay(bool val) { mAutoAddOverlay = val; }
/*
* Input options.
@@ -167,6 +169,7 @@ private:
int mCompressionMethod;
bool mJunkPath;
const char* mOutputAPKFile;
+ bool mAutoAddOverlay;
const char* mAssetSourceDir;
const char* mProguardFile;
const char* mAndroidManifestFile;
diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp
index 0b51ad8..1a4ec7a 100644
--- a/tools/aapt/Main.cpp
+++ b/tools/aapt/Main.cpp
@@ -60,6 +60,7 @@ void usage(void)
" [--min-sdk-version VAL] [--target-sdk-version VAL] \\\n"
" [--max-sdk-version VAL] [--app-version VAL] \\\n"
" [--app-version-name TEXT] [--custom-package VAL] \\\n"
+ " [--auto-add-overlay] \\\n"
" [-I base-package [-I base-package ...]] \\\n"
" [-A asset-source-dir] [-G class-list-file] [-P public-definitions-file] \\\n"
" [-S resource-sources [-S resource-sources ...]] "
@@ -134,7 +135,9 @@ void usage(void)
" --version-name\n"
" inserts android:versionName in to manifest.\n"
" --custom-package\n"
- " generates R.java into a different package.\n");
+ " generates R.java into a different package.\n"
+ " --auto-add-overlay\n"
+ " Automatically add resources that are only in overlays.\n");
}
/*
@@ -429,6 +432,8 @@ int main(int argc, char* const argv[])
goto bail;
}
bundle.setCustomPackage(argv[0]);
+ } else if (strcmp(cp, "-auto-add-overlay") == 0) {
+ bundle.setAutoAddOverlay(true);
} else {
fprintf(stderr, "ERROR: Unknown option '-%s'\n", cp);
wantUsage = true;
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index 19b9b01..b3cf7ea 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -1587,7 +1587,7 @@ status_t ResourceTable::startBag(const SourcePos& sourcePos,
sourcePos.file.striing(), sourcePos.line, String8(type).string());
}
#endif
- if (overlay && !hasBagOrEntry(package, type, name)) {
+ if (overlay && !mBundle->getAutoAddOverlay() && !hasBagOrEntry(package, type, name)) {
bool canAdd = false;
sp<Package> p = mPackages.valueFor(package);
if (p != NULL) {
@@ -3275,12 +3275,13 @@ sp<ResourceTable::Entry> ResourceTable::Type::getEntry(const String16& entry,
const SourcePos& sourcePos,
const ResTable_config* config,
bool doSetIndex,
- bool overlay)
+ bool overlay,
+ bool autoAddOverlay)
{
int pos = -1;
sp<ConfigList> c = mConfigs.valueFor(entry);
if (c == NULL) {
- if (overlay == true && mCanAddEntries.indexOf(entry) < 0) {
+ if (overlay && !autoAddOverlay && mCanAddEntries.indexOf(entry) < 0) {
sourcePos.error("Resource at %s appears in overlay but not"
" in the base package; use <add-resource> to add.\n",
String8(entry).string());
@@ -3592,7 +3593,7 @@ sp<ResourceTable::Entry> ResourceTable::getEntry(const String16& package,
if (t == NULL) {
return NULL;
}
- return t->getEntry(name, sourcePos, config, doSetIndex, overlay);
+ return t->getEntry(name, sourcePos, config, doSetIndex, overlay, mBundle->getAutoAddOverlay());
}
sp<const ResourceTable::Entry> ResourceTable::getEntry(uint32_t resID,
diff --git a/tools/aapt/ResourceTable.h b/tools/aapt/ResourceTable.h
index caa01b3..3fff71c 100644
--- a/tools/aapt/ResourceTable.h
+++ b/tools/aapt/ResourceTable.h
@@ -424,7 +424,8 @@ public:
const SourcePos& pos,
const ResTable_config* config = NULL,
bool doSetIndex = false,
- bool overlay = false);
+ bool overlay = false,
+ bool autoAddOverlay = false);
const SourcePos& getFirstPublicSourcePos() const { return *mFirstPublicSourcePos; }