summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2009-11-30 18:05:10 -0800
committerXavier Ducrohet <xav@android.com>2009-11-30 18:05:10 -0800
commit63459ad555c10de1f316d6de01fc3cd0c0aaa457 (patch)
tree7ad778da942760c7ad82559a3fbb56cb313489a3 /tools
parentabf7fed21bfa7eb899be558477d928a7c9f3e1f6 (diff)
downloadframeworks_base-63459ad555c10de1f316d6de01fc3cd0c0aaa457.zip
frameworks_base-63459ad555c10de1f316d6de01fc3cd0c0aaa457.tar.gz
frameworks_base-63459ad555c10de1f316d6de01fc3cd0c0aaa457.tar.bz2
Add --custom-package to aapt
This is needed to add library support to the SDK. The goal is to have libraries and main project use the same package for the R/Manifest classes to that they can share code and resources. BUG 2293994 Change-Id: Ie4cdb5a3bdabe1760a91316fd8969e4f53344bf9
Diffstat (limited to 'tools')
-rw-r--r--tools/aapt/Bundle.h5
-rw-r--r--tools/aapt/Command.cpp7
-rw-r--r--tools/aapt/Main.cpp19
3 files changed, 25 insertions, 6 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index 1ac13f2..77df6e5 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -43,7 +43,7 @@ public:
mAndroidManifestFile(NULL), mPublicOutputFile(NULL),
mRClassDir(NULL), mResourceIntermediatesDir(NULL),
mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL),
- mVersionCode(NULL), mVersionName(NULL),
+ mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL),
mArgc(0), mArgv(NULL)
{}
~Bundle(void) {}
@@ -121,6 +121,8 @@ public:
void setVersionCode(const char* val) { mVersionCode = val; }
const char* getVersionName() const { return mVersionName; }
void setVersionName(const char* val) { mVersionName = val; }
+ const char* getCustomPackage() const { return mCustomPackage; }
+ void setCustomPackage(const char* val) { mCustomPackage = val; }
/*
* Set and get the file specification.
@@ -182,6 +184,7 @@ private:
const char* mMaxSdkVersion;
const char* mVersionCode;
const char* mVersionName;
+ const char* mCustomPackage;
/* file specification */
int mArgc;
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index 1a536d6..0ef5d55 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -1151,7 +1151,12 @@ int doPackage(Bundle* bundle)
// Write out R.java constants
if (assets->getPackage() == assets->getSymbolsPrivatePackage()) {
- err = writeResourceSymbols(bundle, assets, assets->getPackage(), true);
+ if (bundle->getCustomPackage() == NULL) {
+ err = writeResourceSymbols(bundle, assets, assets->getPackage(), true);
+ } else {
+ const String8 customPkg(bundle->getCustomPackage());
+ err = writeResourceSymbols(bundle, assets, customPkg, true);
+ }
if (err < 0) {
goto bail;
}
diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp
index 98286c0..0b51ad8 100644
--- a/tools/aapt/Main.cpp
+++ b/tools/aapt/Main.cpp
@@ -59,7 +59,7 @@ void usage(void)
" [-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] \\\n"
" [--min-sdk-version VAL] [--target-sdk-version VAL] \\\n"
" [--max-sdk-version VAL] [--app-version VAL] \\\n"
- " [--app-version-name TEXT]\\\n"
+ " [--app-version-name TEXT] [--custom-package VAL] \\\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 ...]] "
@@ -116,8 +116,8 @@ void usage(void)
" -J specify where to output R.java resource constant definitions\n"
" -M specify full path to AndroidManifest.xml to include in zip\n"
" -P specify where to output public resource definitions\n"
- " -S directory in which to find resources. Multiple directories will be scanned"
- " and the first match found (left to right) will take precedence."
+ " -S directory in which to find resources. Multiple directories will be scanned\n"
+ " and the first match found (left to right) will take precedence.\n"
" -0 specifies an additional extension for which such files will not\n"
" be stored compressed in the .apk. An empty string means to not\n"
" compress any files at all.\n"
@@ -132,7 +132,9 @@ void usage(void)
" --version-code\n"
" inserts android:versionCode in to manifest.\n"
" --version-name\n"
- " inserts android:versionName in to manifest.\n");
+ " inserts android:versionName in to manifest.\n"
+ " --custom-package\n"
+ " generates R.java into a different package.\n");
}
/*
@@ -418,6 +420,15 @@ int main(int argc, char* const argv[])
bundle.setVersionName(argv[0]);
} else if (strcmp(cp, "-values") == 0) {
bundle.setValues(true);
+ } else if (strcmp(cp, "-custom-package") == 0) {
+ argc--;
+ argv++;
+ if (!argc) {
+ fprintf(stderr, "ERROR: No argument supplied for '--custom-package' option\n");
+ wantUsage = true;
+ goto bail;
+ }
+ bundle.setCustomPackage(argv[0]);
} else {
fprintf(stderr, "ERROR: Unknown option '-%s'\n", cp);
wantUsage = true;