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,
|
kCommandRemove,
|
||||||
kCommandPackage,
|
kCommandPackage,
|
||||||
kCommandCrunch,
|
kCommandCrunch,
|
||||||
|
kCommandSingleCrunch,
|
||||||
} Command;
|
} Command;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -62,6 +63,7 @@ public:
|
|||||||
mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), mExtraPackages(NULL),
|
mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), mExtraPackages(NULL),
|
||||||
mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), mProduct(NULL),
|
mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), mProduct(NULL),
|
||||||
mUseCrunchCache(false), mErrorOnFailedInsert(false), mOutputTextSymbols(NULL),
|
mUseCrunchCache(false), mErrorOnFailedInsert(false), mOutputTextSymbols(NULL),
|
||||||
|
mSingleCrunchInputFile(NULL), mSingleCrunchOutputFile(NULL),
|
||||||
mArgc(0), mArgv(NULL)
|
mArgc(0), mArgv(NULL)
|
||||||
{}
|
{}
|
||||||
~Bundle(void) {}
|
~Bundle(void) {}
|
||||||
@ -176,6 +178,10 @@ public:
|
|||||||
bool getUseCrunchCache() const { return mUseCrunchCache; }
|
bool getUseCrunchCache() const { return mUseCrunchCache; }
|
||||||
const char* getOutputTextSymbols() const { return mOutputTextSymbols; }
|
const char* getOutputTextSymbols() const { return mOutputTextSymbols; }
|
||||||
void setOutputTextSymbols(const char* val) { mOutputTextSymbols = val; }
|
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.
|
* Set and get the file specification.
|
||||||
@ -283,6 +289,8 @@ private:
|
|||||||
bool mUseCrunchCache;
|
bool mUseCrunchCache;
|
||||||
bool mErrorOnFailedInsert;
|
bool mErrorOnFailedInsert;
|
||||||
const char* mOutputTextSymbols;
|
const char* mOutputTextSymbols;
|
||||||
|
const char* mSingleCrunchInputFile;
|
||||||
|
const char* mSingleCrunchOutputFile;
|
||||||
|
|
||||||
/* file specification */
|
/* file specification */
|
||||||
int mArgc;
|
int mArgc;
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "Bundle.h"
|
#include "Bundle.h"
|
||||||
#include "ResourceFilter.h"
|
#include "ResourceFilter.h"
|
||||||
#include "ResourceTable.h"
|
#include "ResourceTable.h"
|
||||||
|
#include "Images.h"
|
||||||
#include "XMLNode.h"
|
#include "XMLNode.h"
|
||||||
|
|
||||||
#include <utils/Log.h>
|
#include <utils/Log.h>
|
||||||
@ -1839,6 +1840,21 @@ int doCrunch(Bundle* bundle)
|
|||||||
return NO_ERROR;
|
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] = {
|
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, 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,
|
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);
|
" Add specified files to Zip-compatible archive.\n\n", gProgName);
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" %s c[runch] [-v] -S resource-sources ... -C output-folder ...\n"
|
" %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,
|
fprintf(stderr,
|
||||||
" %s v[ersion]\n"
|
" %s v[ersion]\n"
|
||||||
" Print program version.\n\n", gProgName);
|
" Print program version.\n\n", gProgName);
|
||||||
@ -210,6 +214,7 @@ int handleCommand(Bundle* bundle)
|
|||||||
case kCommandRemove: return doRemove(bundle);
|
case kCommandRemove: return doRemove(bundle);
|
||||||
case kCommandPackage: return doPackage(bundle);
|
case kCommandPackage: return doPackage(bundle);
|
||||||
case kCommandCrunch: return doCrunch(bundle);
|
case kCommandCrunch: return doCrunch(bundle);
|
||||||
|
case kCommandSingleCrunch: return doSingleCrunch(bundle);
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "%s: requested command not yet supported\n", gProgName);
|
fprintf(stderr, "%s: requested command not yet supported\n", gProgName);
|
||||||
return 1;
|
return 1;
|
||||||
@ -249,6 +254,8 @@ int main(int argc, char* const argv[])
|
|||||||
bundle.setCommand(kCommandPackage);
|
bundle.setCommand(kCommandPackage);
|
||||||
else if (argv[1][0] == 'c')
|
else if (argv[1][0] == 'c')
|
||||||
bundle.setCommand(kCommandCrunch);
|
bundle.setCommand(kCommandCrunch);
|
||||||
|
else if (argv[1][0] == 's')
|
||||||
|
bundle.setCommand(kCommandSingleCrunch);
|
||||||
else {
|
else {
|
||||||
fprintf(stderr, "ERROR: Unknown command '%s'\n", argv[1]);
|
fprintf(stderr, "ERROR: Unknown command '%s'\n", argv[1]);
|
||||||
wantUsage = true;
|
wantUsage = true;
|
||||||
@ -427,6 +434,28 @@ int main(int argc, char* const argv[])
|
|||||||
convertPath(argv[0]);
|
convertPath(argv[0]);
|
||||||
bundle.setCrunchedOutputDir(argv[0]);
|
bundle.setCrunchedOutputDir(argv[0]);
|
||||||
break;
|
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':
|
case '0':
|
||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
|
@ -29,6 +29,7 @@ extern int doAdd(Bundle* bundle);
|
|||||||
extern int doRemove(Bundle* bundle);
|
extern int doRemove(Bundle* bundle);
|
||||||
extern int doPackage(Bundle* bundle);
|
extern int doPackage(Bundle* bundle);
|
||||||
extern int doCrunch(Bundle* bundle);
|
extern int doCrunch(Bundle* bundle);
|
||||||
|
extern int doSingleCrunch(Bundle* bundle);
|
||||||
|
|
||||||
extern int calcPercent(long uncompressedLen, long compressedLen);
|
extern int calcPercent(long uncompressedLen, long compressedLen);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user