diff options
author | Xavier Ducrohet <xav@android.com> | 2012-12-21 16:16:05 -0800 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2013-01-02 13:21:52 -0800 |
commit | 0749a476551ad096b7e2436e3f1f758c10caad83 (patch) | |
tree | 2bdf681a77e4abbd360fc5453ac1a4c304db3c29 /gradle | |
parent | 724415bae3481da6afa6a561fde3833ace4f9d6c (diff) | |
download | build-0749a476551ad096b7e2436e3f1f758c10caad83.tar.gz |
Add crunch support to the ResourceManager.
This relies on a newer version of aapt that is able to
do single file crunch.
All crunching is done through a thread controlled by an executor.
Change-Id: I578f970660f152031ed1a4f4074382fcf4d7b2b8
Diffstat (limited to 'gradle')
5 files changed, 18 insertions, 9 deletions
diff --git a/gradle/build.gradle b/gradle/build.gradle index bc56450..f627d3a 100644 --- a/gradle/build.gradle +++ b/gradle/build.gradle @@ -39,7 +39,7 @@ dependencies { idea { module { - testSourceDirs += files('src/build-test/groovy', 'src/device-test/groovy') + testSourceDirs += files('src/build-test/groovy', 'src/device-test/groovy').files } } diff --git a/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy index 0e868c2..4f3ba11 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy @@ -434,7 +434,7 @@ class AppPlugin extends com.android.build.gradle.BasePlugin implements org.gradl createProcessManifestTask(variant, "manifests") // Add a task to merge the resource folders - createMergeResourcesTask(variant) + createMergeResourcesTask(variant, true /*process9Patch*/) // Add a task to create the BuildConfig class createBuildConfigTask(variant) diff --git a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy index 3d5be53..eb5f974 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy @@ -316,11 +316,12 @@ public abstract class BasePlugin { } } - protected void createMergeResourcesTask(ApplicationVariant variant) { - createMergeResourcesTask(variant, "$project.buildDir/res/$variant.dirName") + protected void createMergeResourcesTask(ApplicationVariant variant, boolean process9Patch) { + createMergeResourcesTask(variant, "$project.buildDir/res/$variant.dirName", process9Patch) } - protected void createMergeResourcesTask(ApplicationVariant variant, String location) { + protected void createMergeResourcesTask(ApplicationVariant variant, String location, + boolean process9Patch) { def mergeResourcesTask = project.tasks.add("merge${variant.name}Resources", MergeResourcesTask) variant.mergeResourcesTask = mergeResourcesTask @@ -329,6 +330,8 @@ public abstract class BasePlugin { mergeResourcesTask.variant = variant mergeResourcesTask.incrementalFolder = project.file("$project.buildDir/incremental/$variant.dirName") + mergeResourcesTask.process9Patch = process9Patch + mergeResourcesTask.conventionMapping.inputResourceSets = { variant.config.resourceSets } mergeResourcesTask.conventionMapping.rawInputFolders = { IncrementalTask.flattenSourceSets(variant.config.resourceSets) @@ -337,6 +340,7 @@ public abstract class BasePlugin { mergeResourcesTask.conventionMapping.outputDir = { project.file(location) } + } protected void createBuildConfigTask(ApplicationVariant variant) { @@ -536,7 +540,7 @@ public abstract class BasePlugin { createProcessTestManifestTask(variant, "manifests") // Add a task to merge the resource folders - createMergeResourcesTask(variant) + createMergeResourcesTask(variant, true /*process9Patch*/) if (testedVariant.config.type == VariantConfiguration.Type.LIBRARY) { // in this case the tested library must be fully built before test can be built! diff --git a/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy index d391339..e1e0448 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy @@ -154,7 +154,8 @@ public class LibraryPlugin extends BasePlugin implements Plugin<Project> { createProcessManifestTask(variant, DIR_BUNDLES) // Add a task to merge the resource folders - createMergeResourcesTask(variant, "$project.buildDir/$DIR_BUNDLES/${variant.dirName}/res") + createMergeResourcesTask(variant, "$project.buildDir/$DIR_BUNDLES/${variant.dirName}/res", + false /*process9Patch*/) // Add a task to create the BuildConfig class createBuildConfigTask(variant) diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/MergeResourcesTask.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/MergeResourcesTask.groovy index ac43974..acc163f 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/MergeResourcesTask.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/MergeResourcesTask.groovy @@ -19,6 +19,7 @@ import com.android.builder.resources.FileStatus import com.android.builder.resources.ResourceMerger import com.android.builder.resources.ResourceSet import com.android.utils.Pair +import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFiles class MergeResourcesTask extends MergeResources { @@ -27,6 +28,9 @@ class MergeResourcesTask extends MergeResources { @InputFiles Iterable<File> rawInputFolders + @Input + boolean process9Patch + // actual inputs List<ResourceSet> inputResourceSets @@ -59,7 +63,7 @@ class MergeResourcesTask extends MergeResources { } // get the merged set and write it down. - merger.writeResourceFolder(destinationDir) + merger.writeResourceFolder(destinationDir, getProcess9Patch() ? builder.aaptRunner : null) // No exception? Write the known state. merger.writeBlobTo(getIncrementalFolder()) @@ -110,7 +114,7 @@ class MergeResourcesTask extends MergeResources { } } - merger.writeResourceFolder(getOutputDir()) + merger.writeResourceFolder(getOutputDir(), getProcess9Patch() ? builder.aaptRunner : null) // No exception? Write the known state. merger.writeBlobTo(getIncrementalFolder()) |