Add --max-res-version flag to aapt.
aapt will ignore any versioned resource directories over the specified version (if used). e.g. --max-res-version=6 will cause layout-land-v7 to be ignored. Merged from froyo. Change-Id: Ia4eabae535b95b75d18b0c83135d44ed9a95b9eb
This commit is contained in:
@@ -1830,6 +1830,16 @@ ssize_t AaptAssets::slurpResourceTree(Bundle* bundle, const String8& srcDir)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (bundle->getMaxResVersion() != NULL && group.version.length() != 0) {
|
||||
int maxResInt = atoi(bundle->getMaxResVersion());
|
||||
const char *verString = group.version.string();
|
||||
int dirVersionInt = atoi(verString + 1); // skip 'v' in version name
|
||||
if (dirVersionInt > maxResInt) {
|
||||
fprintf(stderr, "max res %d, skipping %s\n", maxResInt, entry->d_name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
FileType type = getFileType(subdirName.string());
|
||||
|
||||
if (type == kFileTypeDirectory) {
|
||||
|
||||
@@ -45,6 +45,7 @@ public:
|
||||
mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL),
|
||||
mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL),
|
||||
mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL),
|
||||
mMaxResVersion(NULL),
|
||||
mArgc(0), mArgv(NULL)
|
||||
{}
|
||||
~Bundle(void) {}
|
||||
@@ -134,6 +135,8 @@ public:
|
||||
void setVersionName(const char* val) { mVersionName = val; }
|
||||
const char* getCustomPackage() const { return mCustomPackage; }
|
||||
void setCustomPackage(const char* val) { mCustomPackage = val; }
|
||||
const char* getMaxResVersion() const { return mMaxResVersion; }
|
||||
void setMaxResVersion(const char * val) { mMaxResVersion = val; }
|
||||
|
||||
/*
|
||||
* Set and get the file specification.
|
||||
@@ -230,6 +233,7 @@ private:
|
||||
const char* mVersionCode;
|
||||
const char* mVersionName;
|
||||
const char* mCustomPackage;
|
||||
const char* mMaxResVersion;
|
||||
|
||||
/* file specification */
|
||||
int mArgc;
|
||||
|
||||
@@ -62,6 +62,7 @@ void usage(void)
|
||||
" [--rename-manifest-package PACKAGE] \\\n"
|
||||
" [--rename-instrumentation-target-package PACKAGE] \\\n"
|
||||
" [--utf16] [--auto-add-overlay] \\\n"
|
||||
" [--max-res-version 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 ...]] "
|
||||
@@ -128,6 +129,8 @@ void usage(void)
|
||||
" higher, the default encoding for resources will be in UTF-8.\n"
|
||||
" --target-sdk-version\n"
|
||||
" inserts android:targetSdkVersion in to manifest.\n"
|
||||
" --max-res-version\n"
|
||||
" ignores versioned resource directories above the given value.\n"
|
||||
" --values\n"
|
||||
" when used with \"dump resources\" also includes resource values.\n"
|
||||
" --version-code\n"
|
||||
@@ -416,6 +419,15 @@ int main(int argc, char* const argv[])
|
||||
goto bail;
|
||||
}
|
||||
bundle.setMaxSdkVersion(argv[0]);
|
||||
} else if (strcmp(cp, "-max-res-version") == 0) {
|
||||
argc--;
|
||||
argv++;
|
||||
if (!argc) {
|
||||
fprintf(stderr, "ERROR: No argument supplied for '--max-res-version' option\n");
|
||||
wantUsage = true;
|
||||
goto bail;
|
||||
}
|
||||
bundle.setMaxResVersion(argv[0]);
|
||||
} else if (strcmp(cp, "-version-code") == 0) {
|
||||
argc--;
|
||||
argv++;
|
||||
|
||||
Reference in New Issue
Block a user