Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42fb3abd authored by Xavier Ducrohet's avatar Xavier Ducrohet Committed by Scott Main
Browse files

DO NOT MERGE. cherrypick from I3653f67ee321eac37cb8a6d228b1ef6d104ff0be

Add single crunch command to aapt. do not merge.

Previously the crunch command would work on a full res folder
and output a full res folder (with only the drawables). This
was only used in the SDK.

The incremental logic is moved to the SDK build system so we
change the crunch command (or rather add a new one) to only
crunch a single file.

(cherry picked from commit b1f6ad82)

Change-Id: Ifa0dceed93708658f950322f36c13b6ebe7ab0f3
parent 3c8ecd30
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -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;
+1 −0
Original line number Original line Diff line number Diff line
@@ -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>
+37 −8
Original line number Original line Diff line number Diff line
@@ -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++;
+1 −0
Original line number Original line Diff line number Diff line
@@ -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);