diff options
author | Josiah Gaskin <josiahgaskin@google.com> | 2011-06-08 19:31:40 -0700 |
---|---|---|
committer | Josiah Gaskin <josiahgaskin@google.com> | 2011-06-27 16:29:38 -0700 |
commit | ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0 (patch) | |
tree | 203ed8910afd70ee30fcece6c3c547383cf20b66 /tools | |
parent | 4fea5373d350f5d855408ffaa41206b8fa743c55 (diff) | |
download | frameworks_base-ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0.zip frameworks_base-ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0.tar.gz frameworks_base-ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0.tar.bz2 |
Copy once-created R.java into library projects
This change adds functionality in Aapt to allow specification of
library projects to copy the generated R.java file into rather
than regenerating the file for each library project.
Change-Id: I05939d1dc875bd875be9298ca47cb639235070c6
Diffstat (limited to 'tools')
-rw-r--r-- | tools/aapt/Bundle.h | 5 | ||||
-rw-r--r-- | tools/aapt/Command.cpp | 11 | ||||
-rw-r--r-- | tools/aapt/Main.cpp | 11 |
3 files changed, 26 insertions, 1 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h index fa84e93..a32aa7f 100644 --- a/tools/aapt/Bundle.h +++ b/tools/aapt/Bundle.h @@ -45,7 +45,7 @@ public: mAndroidManifestFile(NULL), mPublicOutputFile(NULL), mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL), mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL), - mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), + mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), mExtraPackages(NULL), mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), mProduct(NULL), mArgc(0), mArgv(NULL) {} @@ -138,6 +138,8 @@ public: void setVersionName(const char* val) { mVersionName = val; } const char* getCustomPackage() const { return mCustomPackage; } void setCustomPackage(const char* val) { mCustomPackage = val; } + const char* getExtraPackages() const { return mExtraPackages; } + void setExtraPackages(const char* val) { mExtraPackages = val; } const char* getMaxResVersion() const { return mMaxResVersion; } void setMaxResVersion(const char * val) { mMaxResVersion = val; } bool getDebugMode() { return mDebugMode; } @@ -243,6 +245,7 @@ private: const char* mVersionCode; const char* mVersionName; const char* mCustomPackage; + const char* mExtraPackages; const char* mMaxResVersion; bool mDebugMode; bool mNonConstantId; diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp index 739763e..c7dfb8f 100644 --- a/tools/aapt/Command.cpp +++ b/tools/aapt/Command.cpp @@ -1414,6 +1414,17 @@ int doPackage(Bundle* bundle) if (assets->getPackage() == assets->getSymbolsPrivatePackage()) { if (bundle->getCustomPackage() == NULL) { err = writeResourceSymbols(bundle, assets, assets->getPackage(), true); + // Copy R.java for libraries + if (bundle->getExtraPackages() != NULL) { + // Split on semicolon + String8 libs(bundle->getExtraPackages()); + char* packageString = strtok(libs.lockBuffer(libs.length()), ";"); + while (packageString != NULL) { + err = writeResourceSymbols(bundle, assets, String8(packageString), true); + packageString = strtok(NULL, ";"); + } + libs.unlockBuffer(); + } } else { const String8 customPkg(bundle->getCustomPackage()); err = writeResourceSymbols(bundle, assets, customPkg, true); diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp index 1e63131..732541d 100644 --- a/tools/aapt/Main.cpp +++ b/tools/aapt/Main.cpp @@ -145,6 +145,8 @@ void usage(void) " inserts android:versionName in to manifest.\n" " --custom-package\n" " generates R.java into a different package.\n" + " --extra-packages\n" + " generate R.java for libraries. Separate libraries with ';'.\n" " --auto-add-overlay\n" " Automatically add resources that are only in overlays.\n" " --rename-manifest-package\n" @@ -475,6 +477,15 @@ int main(int argc, char* const argv[]) goto bail; } bundle.setCustomPackage(argv[0]); + } else if (strcmp(cp, "-extra-packages") == 0) { + argc--; + argv++; + if (!argc) { + fprintf(stderr, "ERROR: No argument supplied for '--extra-packages' option\n"); + wantUsage = true; + goto bail; + } + bundle.setExtraPackages(argv[0]); } else if (strcmp(cp, "-utf16") == 0) { bundle.setWantUTF16(true); } else if (strcmp(cp, "-rename-manifest-package") == 0) { |