]> git.saurik.com Git - android/aapt.git/commitdiff
am f4750724: am 9d829f98: am 21e6e2de: Merge "Change generated dependency file names"
authorXavier Ducrohet <xav@android.com>
Thu, 18 Aug 2011 21:48:49 +0000 (14:48 -0700)
committerAndroid Git Automerger <android-git-automerger@android.com>
Thu, 18 Aug 2011 21:48:49 +0000 (14:48 -0700)
* commit 'f4750724cf8db972a052cb388dc9a39fc7aa6dd6':
  Change generated dependency file names

Command.cpp
Package.cpp
Resource.cpp

index daf53e06bd7566457694975f15d7df616eeb74d6..178e7fdcffd3192a9dc48a35c207c5e22ba6ad1b 100644 (file)
@@ -1546,7 +1546,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);
@@ -1577,15 +1579,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");
@@ -1595,13 +1602,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, ":");
                 }
@@ -1640,6 +1652,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
@@ -1647,7 +1663,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);
     }
index c9f687088b4f1afb92b22c22a78ff50c4372fff3..1e3efdeca17639015a0dd4618d2bcbd8fa5ed518 100644 (file)
@@ -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);
     }
index 2d5138bab3fa9997496e2a08491f7093c4ed4057..bb56af9afb7dcc4852051dad5e8b1d37b44b9298 100644 (file)
@@ -1958,10 +1958,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());