summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosiah Gaskin <josiahgaskin@google.com>2011-06-08 19:31:40 -0700
committerJosiah Gaskin <josiahgaskin@google.com>2011-06-27 16:29:38 -0700
commitce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0 (patch)
tree203ed8910afd70ee30fcece6c3c547383cf20b66
parent4fea5373d350f5d855408ffaa41206b8fa743c55 (diff)
downloadframeworks_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
-rw-r--r--tools/aapt/Bundle.h5
-rw-r--r--tools/aapt/Command.cpp11
-rw-r--r--tools/aapt/Main.cpp11
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) {