Merge "Add single crunch command to aapt."
This commit is contained in:
committed by
Android (Google) Code Review
commit
6fb9a983ce
@ -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;
|
||||
|
@ -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,
|
||||
|
@ -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++;
|
||||
|
@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user