diff options
author | Xavier Ducrohet <xav@android.com> | 2013-01-03 10:43:39 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-01-03 10:43:39 -0800 |
commit | afa4d8bfafdd42b75dc15d31c0962c252f304138 (patch) | |
tree | abe8d7ef72551c1472178d065165a1a8c8ed75ba /tools | |
parent | 481102eed6d8eaff07489717bde7fc59a5dea5bf (diff) | |
parent | 22d7cf239d8a9b009ea7adf86d8826a8a8116d03 (diff) | |
download | frameworks_base-afa4d8bfafdd42b75dc15d31c0962c252f304138.zip frameworks_base-afa4d8bfafdd42b75dc15d31c0962c252f304138.tar.gz frameworks_base-afa4d8bfafdd42b75dc15d31c0962c252f304138.tar.bz2 |
am 22d7cf23: Add single crunch command to aapt. do not merge.
* commit '22d7cf239d8a9b009ea7adf86d8826a8a8116d03':
Add single crunch command to aapt. do not merge.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/aapt/Bundle.h | 8 | ||||
-rw-r--r-- | tools/aapt/Command.cpp | 16 | ||||
-rw-r--r-- | tools/aapt/Main.cpp | 45 | ||||
-rw-r--r-- | tools/aapt/Main.h | 1 |
4 files changed, 62 insertions, 8 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h index fde3bd6..5089b9d 100644 --- a/tools/aapt/Bundle.h +++ b/tools/aapt/Bundle.h @@ -38,6 +38,7 @@ typedef enum Command { kCommandRemove, kCommandPackage, kCommandCrunch, + kCommandSingleCrunch, } Command; /* @@ -62,6 +63,7 @@ public: mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), mExtraPackages(NULL), mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), mProduct(NULL), mUseCrunchCache(false), mErrorOnFailedInsert(false), mOutputTextSymbols(NULL), + mSingleCrunchInputFile(NULL), mSingleCrunchOutputFile(NULL), mArgc(0), mArgv(NULL) {} ~Bundle(void) {} @@ -176,6 +178,10 @@ public: bool getUseCrunchCache() const { return mUseCrunchCache; } const char* getOutputTextSymbols() const { return mOutputTextSymbols; } void setOutputTextSymbols(const char* val) { mOutputTextSymbols = val; } + const char* getSingleCrunchInputFile() const { return mSingleCrunchInputFile; } + void setSingleCrunchInputFile(const char* val) { mSingleCrunchInputFile = val; } + const char* getSingleCrunchOutputFile() const { return mSingleCrunchOutputFile; } + void setSingleCrunchOutputFile(const char* val) { mSingleCrunchOutputFile = val; } /* * Set and get the file specification. @@ -283,6 +289,8 @@ private: bool mUseCrunchCache; bool mErrorOnFailedInsert; const char* mOutputTextSymbols; + const char* mSingleCrunchInputFile; + const char* mSingleCrunchOutputFile; /* file specification */ int mArgc; diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp index 0a5e590..b98925b 100644 --- a/tools/aapt/Command.cpp +++ b/tools/aapt/Command.cpp @@ -7,6 +7,7 @@ #include "Bundle.h" #include "ResourceFilter.h" #include "ResourceTable.h" +#include "Images.h" #include "XMLNode.h" #include <utils/Log.h> @@ -1839,6 +1840,21 @@ int doCrunch(Bundle* bundle) return NO_ERROR; } +/* + * Do PNG Crunching on a single flag + * -i points to a single png file + * -o points to a single png output file + */ +int doSingleCrunch(Bundle* bundle) +{ + fprintf(stdout, "Crunching single PNG file: %s\n", bundle->getSingleCrunchInputFile()); + fprintf(stdout, "\tOutput file: %s\n", bundle->getSingleCrunchOutputFile()); + + String8 input(bundle->getSingleCrunchInputFile()); + String8 output(bundle->getSingleCrunchOutputFile()); + return preProcessImageToCache(bundle, input, output); +} + char CONSOLE_DATA[2925] = { 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 95, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp index f398de0..32fecb2 100644 --- a/tools/aapt/Main.cpp +++ b/tools/aapt/Main.cpp @@ -85,7 +85,11 @@ void usage(void) " Add specified files to Zip-compatible archive.\n\n", gProgName); fprintf(stderr, " %s c[runch] [-v] -S resource-sources ... -C output-folder ...\n" - " Do PNG preprocessing and store the results in output folder.\n\n", gProgName); + " Do PNG preprocessing on one or several resource folders\n" + " and store the results in the output folder.\n\n", gProgName); + fprintf(stderr, + " %s s[ingleCrunch] [-v] -i input-file -o outputfile\n" + " Do PNG preprocessing on a single file.\n\n", gProgName); fprintf(stderr, " %s v[ersion]\n" " Print program version.\n\n", gProgName); @@ -203,13 +207,14 @@ int handleCommand(Bundle* bundle) // printf(" %d: '%s'\n", i, bundle->getFileSpecEntry(i)); switch (bundle->getCommand()) { - case kCommandVersion: return doVersion(bundle); - case kCommandList: return doList(bundle); - case kCommandDump: return doDump(bundle); - case kCommandAdd: return doAdd(bundle); - case kCommandRemove: return doRemove(bundle); - case kCommandPackage: return doPackage(bundle); - case kCommandCrunch: return doCrunch(bundle); + case kCommandVersion: return doVersion(bundle); + case kCommandList: return doList(bundle); + case kCommandDump: return doDump(bundle); + case kCommandAdd: return doAdd(bundle); + case kCommandRemove: return doRemove(bundle); + case kCommandPackage: return doPackage(bundle); + case kCommandCrunch: return doCrunch(bundle); + case kCommandSingleCrunch: return doSingleCrunch(bundle); default: fprintf(stderr, "%s: requested command not yet supported\n", gProgName); return 1; @@ -249,6 +254,8 @@ int main(int argc, char* const argv[]) bundle.setCommand(kCommandPackage); else if (argv[1][0] == 'c') bundle.setCommand(kCommandCrunch); + else if (argv[1][0] == 's') + bundle.setCommand(kCommandSingleCrunch); else { fprintf(stderr, "ERROR: Unknown command '%s'\n", argv[1]); wantUsage = true; @@ -427,6 +434,28 @@ int main(int argc, char* const argv[]) convertPath(argv[0]); bundle.setCrunchedOutputDir(argv[0]); break; + case 'i': + argc--; + argv++; + if (!argc) { + fprintf(stderr, "ERROR: No argument supplied for '-i' option\n"); + wantUsage = true; + goto bail; + } + convertPath(argv[0]); + bundle.setSingleCrunchInputFile(argv[0]); + break; + case 'o': + argc--; + argv++; + if (!argc) { + fprintf(stderr, "ERROR: No argument supplied for '-o' option\n"); + wantUsage = true; + goto bail; + } + convertPath(argv[0]); + bundle.setSingleCrunchOutputFile(argv[0]); + break; case '0': argc--; argv++; diff --git a/tools/aapt/Main.h b/tools/aapt/Main.h index d20c601..a6b39ac 100644 --- a/tools/aapt/Main.h +++ b/tools/aapt/Main.h @@ -29,6 +29,7 @@ extern int doAdd(Bundle* bundle); extern int doRemove(Bundle* bundle); extern int doPackage(Bundle* bundle); extern int doCrunch(Bundle* bundle); +extern int doSingleCrunch(Bundle* bundle); extern int calcPercent(long uncompressedLen, long compressedLen); |