diff options
author | 2011-06-14 13:57:09 -0700 | |
---|---|---|
committer | 2011-06-27 16:44:57 -0700 | |
commit | 9bf34ca6f85309c65b0ebdf614cb8266401b49ba (patch) | |
tree | 50708801cb3c58aa23a32bc1a1ad39315e3aeff5 /tools/aapt/Resource.cpp | |
parent | ce89f1531ed8b96b8b790b3f8b18dd4cf483f7f0 (diff) |
Add dependency generation to Aapt for R.java
Make Aapt generate a dependency file in the location specified
by RClassDir for R.java if the --generate-dependencies flag is set.
This dependency file is then read by the ant exec loop task
to see whether to recreate R.java.
Change-Id: I7152dac86b6ea0e448ef65e3a95694afe233c789
Diffstat (limited to 'tools/aapt/Resource.cpp')
-rw-r--r-- | tools/aapt/Resource.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp index 0a4f24f26df2..a603314709ab 100644 --- a/tools/aapt/Resource.cpp +++ b/tools/aapt/Resource.cpp @@ -51,6 +51,12 @@ ResourceTypeSet::ResourceTypeSet() { } +FilePathStore::FilePathStore() + :RefBase(), + Vector<String8>() +{ +} + class ResourceDirIterator { public: @@ -1849,6 +1855,16 @@ status_t writeResourceSymbols(Bundle* bundle, const sp<AaptAssets>& assets, return err; } fclose(fp); + + if (bundle->getGenDependencies()) { + // Add this R.java to the dependency file + String8 dependencyFile(bundle->getRClassDir()); + dependencyFile.appendPath("R.d"); + + fp = fopen(dependencyFile.string(), "a"); + fprintf(fp,"%s \\\n", dest.string()); + fclose(fp); + } } return NO_ERROR; @@ -2170,3 +2186,16 @@ writeProguardFile(Bundle* bundle, const sp<AaptAssets>& assets) return err; } + +status_t +writeDependencyPreReqs(Bundle* bundle, const sp<AaptAssets>& assets, FILE* fp) +{ + status_t deps = -1; + sp<FilePathStore> files = assets->getFullResPaths(); + for (size_t file_i = 0; file_i < files->size(); ++file_i) { + // Add the full file path to the dependency file + fprintf(fp, "%s \\\n", files->itemAt(file_i).string()); + deps++; + } + return deps; +}
\ No newline at end of file |