Add task to create directory for aapt_rules.pro

This commit is contained in:
Jelle De Coninck
2021-06-08 15:10:01 +02:00
committed by James Hamilton
parent e8e749ce33
commit 021bbb1f82
2 changed files with 24 additions and 1 deletions

View File

@@ -26,6 +26,7 @@ import com.android.build.gradle.AppExtension
import com.android.build.gradle.BaseExtension
import com.android.build.gradle.LibraryExtension
import com.android.build.gradle.api.BaseVariant
import com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask
import com.android.build.gradle.internal.tasks.factory.dependsOn
import java.io.File
import org.gradle.api.GradleException
@@ -43,6 +44,7 @@ import proguard.gradle.plugin.android.dsl.ProGuardConfiguration
import proguard.gradle.plugin.android.dsl.UserProGuardConfiguration
import proguard.gradle.plugin.android.dsl.VariantConfiguration
import proguard.gradle.plugin.android.tasks.CollectConsumerRulesTask
import proguard.gradle.plugin.android.tasks.PrepareProguardConfigDirectoryTask
import proguard.gradle.plugin.android.transforms.AndroidConsumerRulesTransform
import proguard.gradle.plugin.android.transforms.ArchiveConsumerRulesTransform
@@ -98,7 +100,10 @@ class AndroidPlugin(private val androidExtension: BaseExtension) : Plugin<Projec
}
private fun configureAapt(project: Project) {
File("${project.buildDir.absolutePath}/intermediates/proguard/configs").mkdirs()
val createDirectoryTask = project.tasks.register("prepareProguardConfigDirectory", PrepareProguardConfigDirectoryTask::class.java)
project.tasks.withType(LinkApplicationAndroidResourcesTask::class.java) {
it.dependsOn(createDirectoryTask)
}
if (!androidExtension.aaptAdditionalParameters.contains("--proguard")) {
androidExtension.aaptAdditionalParameters.addAll(listOf(
"--proguard",

View File

@@ -0,0 +1,18 @@
package proguard.gradle.plugin.android.tasks
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
import java.io.File
abstract class PrepareProguardConfigDirectoryTask : DefaultTask() {
@OutputDirectory
val file = File("${project.buildDir.absolutePath}/intermediates/proguard/configs")
@TaskAction
fun createDirectory() {
file.mkdirs()
}
}