From fa19db5eb73058e755cd98b77a0bffa17c7f9cda Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Mon, 30 Nov 2009 18:05:10 -0800 Subject: [PATCH] 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 --- Bundle.h | 5 ++++- Command.cpp | 7 ++++++- Main.cpp | 19 +++++++++++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/Bundle.h b/Bundle.h index 1ac13f2..77df6e5 100644 --- a/Bundle.h +++ b/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/Command.cpp b/Command.cpp index 1a536d6..0ef5d55 100644 --- a/Command.cpp +++ b/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/Main.cpp b/Main.cpp index 98286c0..0b51ad8 100644 --- a/Main.cpp +++ b/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; -- 2.45.2