mirror of
https://github.com/Guardsquare/proguard.git
synced 2026-03-13 09:50:34 +08:00
Fix minifyEnabled = true check that checked all variants
This commit is contained in:
committed by
maqsood ahmad
parent
8b1bd44bca
commit
465304515b
@@ -21,6 +21,7 @@
|
||||
|
||||
package proguard.gradle.plugin.android
|
||||
|
||||
import com.android.build.api.variant.VariantInfo
|
||||
import com.android.build.gradle.AppExtension
|
||||
import com.android.build.gradle.BaseExtension
|
||||
import com.android.build.gradle.LibraryExtension
|
||||
@@ -36,6 +37,7 @@ import org.gradle.api.tasks.TaskProvider
|
||||
import proguard.gradle.plugin.android.AndroidProjectType.ANDROID_APPLICATION
|
||||
import proguard.gradle.plugin.android.AndroidProjectType.ANDROID_LIBRARY
|
||||
import proguard.gradle.plugin.android.dsl.ProGuardAndroidExtension
|
||||
import proguard.gradle.plugin.android.dsl.VariantConfiguration
|
||||
import proguard.gradle.plugin.android.tasks.CollectConsumerRulesTask
|
||||
import proguard.gradle.plugin.android.transforms.AndroidConsumerRulesTransform
|
||||
import proguard.gradle.plugin.android.transforms.ArchiveConsumerRulesTransform
|
||||
@@ -64,7 +66,8 @@ class AndroidPlugin(private val androidExtension: BaseExtension) : Plugin<Projec
|
||||
|
||||
when (androidExtension) {
|
||||
is AppExtension -> androidExtension.applicationVariants.all { applicationVariant ->
|
||||
verifyNotMinified(applicationVariant)
|
||||
if (proguardBlock.configurations.hasVariantConfiguration(applicationVariant.name))
|
||||
verifyNotMinified(applicationVariant)
|
||||
|
||||
collectConsumerRulesTask.dependsOn(createCollectConsumerRulesTask(
|
||||
project,
|
||||
@@ -73,7 +76,8 @@ class AndroidPlugin(private val androidExtension: BaseExtension) : Plugin<Projec
|
||||
File("${project.buildDir}/intermediates/proguard/configs")))
|
||||
}
|
||||
is LibraryExtension -> androidExtension.libraryVariants.all { libraryVariant ->
|
||||
verifyNotMinified(libraryVariant)
|
||||
if (proguardBlock.configurations.hasVariantConfiguration(libraryVariant.name))
|
||||
verifyNotMinified(libraryVariant)
|
||||
|
||||
collectConsumerRulesTask.dependsOn(createCollectConsumerRulesTask(
|
||||
project,
|
||||
@@ -158,3 +162,12 @@ enum class AndroidProjectType {
|
||||
ANDROID_APPLICATION,
|
||||
ANDROID_LIBRARY;
|
||||
}
|
||||
|
||||
fun Iterable<VariantConfiguration>.findVariantConfiguration(variant: VariantInfo) =
|
||||
find { it.name == variant.fullVariantName } ?: find { it.name == variant.buildTypeName }
|
||||
|
||||
fun Iterable<VariantConfiguration>.findVariantConfiguration(variantName: String) =
|
||||
find { it.name == variantName } ?: find { variantName.endsWith(it.name.capitalize()) }
|
||||
|
||||
fun Iterable<VariantConfiguration>.hasVariantConfiguration(variantName: String) =
|
||||
this.findVariantConfiguration(variantName) != null
|
||||
|
||||
@@ -137,8 +137,3 @@ class ProGuardTransform(
|
||||
|
||||
typealias ProGuardIOEntry = Pair<File, File>
|
||||
|
||||
private fun Iterable<VariantConfiguration>.findVariantConfiguration(variant: VariantInfo) =
|
||||
find { it.name == variant.fullVariantName } ?: find { it.name == variant.buildTypeName }
|
||||
|
||||
private fun Iterable<VariantConfiguration>.findVariantConfiguration(variantName: String) =
|
||||
find { it.name == variantName } ?: find { variantName.endsWith(it.name.capitalize()) }
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
package proguard.gradle.plugin.android.dsl
|
||||
|
||||
import io.kotest.core.spec.style.FreeSpec
|
||||
import io.kotest.matchers.shouldBe
|
||||
import io.kotest.matchers.string.shouldContain
|
||||
import org.gradle.testkit.runner.TaskOutcome
|
||||
import testutils.AndroidProject
|
||||
import testutils.applicationModule
|
||||
import testutils.createGradleRunner
|
||||
@@ -52,6 +54,42 @@ class ConfigurationTest : FreeSpec({
|
||||
}
|
||||
}
|
||||
|
||||
"Given a project with a configuration for a minified variant that is not configured" - {
|
||||
val project = autoClose(AndroidProject().apply {
|
||||
addModule(applicationModule("app", buildDotGradle = """
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
id 'proguard'
|
||||
}
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proguard {
|
||||
configurations {
|
||||
debug {
|
||||
defaultConfiguration 'proguard-android-debug.txt'
|
||||
}
|
||||
}
|
||||
}""".trimIndent()))
|
||||
}.create())
|
||||
|
||||
|
||||
"When the project is evaluated" - {
|
||||
val result = createGradleRunner(project.rootDir, testKitDir, "assemble").build()
|
||||
|
||||
"Then the build should succeed" {
|
||||
result.task(":app:assemble")?.outcome shouldBe TaskOutcome.SUCCESS
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"Given a project with a configuration for a minified variant" - {
|
||||
val project = autoClose(AndroidProject().apply {
|
||||
addModule(applicationModule("app", buildDotGradle = """
|
||||
|
||||
Reference in New Issue
Block a user