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

Commit 21e6e2de authored by Xavier Ducrohet's avatar Xavier Ducrohet Committed by Android Code Review
Browse files

Merge "Change generated dependency file names"

parents 4733d3a6 b711f3f7
Loading
Loading
Loading
Loading
+23 −6
Original line number Diff line number Diff line
@@ -1391,7 +1391,9 @@ int doPackage(Bundle* bundle)
    assets = new AaptAssets();

    // Set up the resource gathering in assets if we're going to generate
    // dependency files
    // dependency files. Every time we encounter a resource while slurping
    // the tree, we'll add it to these stores so we have full resource paths
    // to write to a dependency file.
    if (bundle->getGenDependencies()) {
        sp<FilePathStore> resPathStore = new FilePathStore;
        assets->setFullResPaths(resPathStore);
@@ -1422,15 +1424,20 @@ int doPackage(Bundle* bundle)
        goto bail;
    }

    // If we've been asked to generate a dependency file, do that here
    if (bundle->getGenDependencies()) {
        // If this is the packaging step, generate the dependency file next to
        // the output apk (e.g. bin/resources.ap_.d)
        if (outputAPKFile) {
            dependencyFile = String8(outputAPKFile);
            // Strip the extension and add new one
            dependencyFile = dependencyFile.getBasePath();
            // Add the .d extension to the dependency file.
            dependencyFile.append(".d");
        } else {
            // Else if this is the R.java dependency generation step,
            // generate the dependency file in the R.java package subdirectory
            // e.g. gen/com/foo/app/R.java.d
            dependencyFile = String8(bundle->getRClassDir());
            dependencyFile.appendPath("R.d");
            dependencyFile.appendPath("R.java.d");
        }
        // Make sure we have a clean dependency file to start with
        fp = fopen(dependencyFile, "w");
@@ -1440,13 +1447,18 @@ int doPackage(Bundle* bundle)
    // Write out R.java constants
    if (assets->getPackage() == assets->getSymbolsPrivatePackage()) {
        if (bundle->getCustomPackage() == NULL) {
            // Write the R.java file into the appropriate class directory
            // e.g. gen/com/foo/app/R.java
            err = writeResourceSymbols(bundle, assets, assets->getPackage(), true);
            // Copy R.java for libraries
            // If we have library files, we're going to write our R.java file into
            // the appropriate class directory for those libraries as well.
            // e.g. gen/com/foo/app/lib/R.java
            if (bundle->getExtraPackages() != NULL) {
                // Split on colon
                String8 libs(bundle->getExtraPackages());
                char* packageString = strtok(libs.lockBuffer(libs.length()), ":");
                while (packageString != NULL) {
                    // Write the R.java file out with the correct package name
                    err = writeResourceSymbols(bundle, assets, String8(packageString), true);
                    packageString = strtok(NULL, ":");
                }
@@ -1485,6 +1497,10 @@ int doPackage(Bundle* bundle)
        }
    }

    // If we've been asked to generate a dependency file, we need to finish up here.
    // the writeResourceSymbols and writeAPK functions have already written the target
    // half of the dependency file, now we need to write the prerequisites. (files that
    // the R.java file or .ap_ file depend on)
    if (bundle->getGenDependencies()) {
        // Now that writeResourceSymbols or writeAPK has taken care of writing
        // the targets to our dependency file, we'll write the prereqs
@@ -1492,7 +1508,8 @@ int doPackage(Bundle* bundle)
        fprintf(fp, " : ");
        bool includeRaw = (outputAPKFile != NULL);
        err = writeDependencyPreReqs(bundle, assets, fp, includeRaw);
        // Also manually add the AndroidManifeset since it's a non-asset
        // Also manually add the AndroidManifeset since it's not under res/ or assets/
        // and therefore was not added to our pathstores during slurping
        fprintf(fp, "%s \\\n", bundle->getAndroidManifestFile());
        fclose(fp);
    }
+7 −2
Original line number Diff line number Diff line
@@ -177,12 +177,17 @@ status_t writeAPK(Bundle* bundle, const sp<AaptAssets>& assets,
        }
    }

    // If we've been asked to generate a dependency file for the .ap_ package,
    // do so here
    if (bundle->getGenDependencies()) {
        // Add this file to the dependency file
        String8 dependencyFile = outputFile.getBasePath();
        // The dependency file gets output to the same directory
        // as the specified output file with an additional .d extension.
        // e.g. bin/resources.ap_.d
        String8 dependencyFile = outputFile;
        dependencyFile.append(".d");

        FILE* fp = fopen(dependencyFile.string(), "a");
        // Add this file to the dependency file
        fprintf(fp, "%s \\\n", outputFile.string());
        fclose(fp);
    }
+3 −1
Original line number Diff line number Diff line
@@ -1890,10 +1890,12 @@ status_t writeResourceSymbols(Bundle* bundle, const sp<AaptAssets>& assets,
        }
        fclose(fp);

        // If we were asked to generate a dependency file, we'll go ahead and add this R.java
        // as a target in the dependency file right next to it.
        if (bundle->getGenDependencies()) {
            // Add this R.java to the dependency file
            String8 dependencyFile(bundle->getRClassDir());
            dependencyFile.appendPath("R.d");
            dependencyFile.appendPath("R.java.d");

            fp = fopen(dependencyFile.string(), "a");
            fprintf(fp,"%s \\\n", dest.string());