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

Commit ce89f153 authored by Josiah Gaskin's avatar Josiah Gaskin
Browse files

Copy once-created R.java into library projects

This change adds functionality in Aapt to allow specification of
library projects to copy the generated R.java file into rather
than regenerating the file for each library project.

Change-Id: I05939d1dc875bd875be9298ca47cb639235070c6
parent 4fea5373
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ public:
          mAndroidManifestFile(NULL), mPublicOutputFile(NULL),
          mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL),
          mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL),
          mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL),
          mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), mExtraPackages(NULL),
          mMaxResVersion(NULL), mDebugMode(false), mNonConstantId(false), mProduct(NULL),
          mArgc(0), mArgv(NULL)
        {}
@@ -138,6 +138,8 @@ public:
    void setVersionName(const char* val) { mVersionName = val; }
    const char* getCustomPackage() const { return mCustomPackage; }
    void setCustomPackage(const char* val) { mCustomPackage = val; }
    const char* getExtraPackages() const { return mExtraPackages; }
    void setExtraPackages(const char* val) { mExtraPackages = val; }
    const char* getMaxResVersion() const { return mMaxResVersion; }
    void setMaxResVersion(const char * val) { mMaxResVersion = val; }
    bool getDebugMode() { return mDebugMode; }
@@ -243,6 +245,7 @@ private:
    const char* mVersionCode;
    const char* mVersionName;
    const char* mCustomPackage;
    const char* mExtraPackages;
    const char* mMaxResVersion;
    bool        mDebugMode;
    bool        mNonConstantId;
+11 −0
Original line number Diff line number Diff line
@@ -1414,6 +1414,17 @@ int doPackage(Bundle* bundle)
    if (assets->getPackage() == assets->getSymbolsPrivatePackage()) {
        if (bundle->getCustomPackage() == NULL) {
            err = writeResourceSymbols(bundle, assets, assets->getPackage(), true);
            // Copy R.java for libraries
            if (bundle->getExtraPackages() != NULL) {
                // Split on semicolon
                String8 libs(bundle->getExtraPackages());
                char* packageString = strtok(libs.lockBuffer(libs.length()), ";");
                while (packageString != NULL) {
                    err = writeResourceSymbols(bundle, assets, String8(packageString), true);
                    packageString = strtok(NULL, ";");
                }
                libs.unlockBuffer();
            }
        } else {
            const String8 customPkg(bundle->getCustomPackage());
            err = writeResourceSymbols(bundle, assets, customPkg, true);
+11 −0
Original line number Diff line number Diff line
@@ -145,6 +145,8 @@ void usage(void)
        "       inserts android:versionName in to manifest.\n"
        "   --custom-package\n"
        "       generates R.java into a different package.\n"
        "   --extra-packages\n"
        "       generate R.java for libraries. Separate libraries with ';'.\n"
        "   --auto-add-overlay\n"
        "       Automatically add resources that are only in overlays.\n"
        "   --rename-manifest-package\n"
@@ -475,6 +477,15 @@ int main(int argc, char* const argv[])
                        goto bail;
                    }
                    bundle.setCustomPackage(argv[0]);
                } else if (strcmp(cp, "-extra-packages") == 0) {
                    argc--;
                    argv++;
                    if (!argc) {
                        fprintf(stderr, "ERROR: No argument supplied for '--extra-packages' option\n");
                        wantUsage = true;
                        goto bail;
                    }
                    bundle.setExtraPackages(argv[0]);
                } else if (strcmp(cp, "-utf16") == 0) {
                    bundle.setWantUTF16(true);
                } else if (strcmp(cp, "-rename-manifest-package") == 0) {