Issue warning for proguard configurations pointing to directories
Bug: 245716309
Test: na
Change-Id: I532b9c7eb2f9cab32f405230745762cb723cb1ae
diff --git a/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/MergeConsumerProguardFilesTask.kt b/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/MergeConsumerProguardFilesTask.kt
index dc43bdf..49aae84 100644
--- a/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/MergeConsumerProguardFilesTask.kt
+++ b/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/MergeConsumerProguardFilesTask.kt
@@ -68,9 +68,14 @@
consumerProguardFiles
) { errorMessage: String? -> throw EvalIssueException(errorMessage!!) }
}
+
consumerProguardFiles.forEach { file: File ->
- if (!file.isFile) {
- logger.warn("Supplied consumer proguard configuration file does not exist: ${file.path}")
+ if (file.isFile) {
+ // do nothing
+ } else if (file.isDirectory) {
+ logger.warn("Directories as consumer proguard configuration are not supported: ${file.path}")
+ } else {
+ logger.warn("Supplied consumer proguard configuration does not exist: ${file.path}")
}
}
diff --git a/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/ProguardConfigurableTask.kt b/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/ProguardConfigurableTask.kt
index 6e3784f..2509c7e 100644
--- a/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/ProguardConfigurableTask.kt
+++ b/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/tasks/ProguardConfigurableTask.kt
@@ -150,12 +150,7 @@
// return.
if (!componentType.get().isBaseModule) {
return proguardFiles.files.mapNotNull { proguardFile ->
- if (!proguardFile.isFile) {
- logger.warn("Supplied proguard configuration file does not exist: ${proguardFile.path}")
- null
- } else {
- proguardFile
- }
+ removeIfAbsent(proguardFile)
}
}
@@ -173,16 +168,23 @@
if (defaultFiles.contains(proguardFile)) {
extractedDefaultProguardFile.get().file(proguardFile.name).asFile
} else {
- if(!proguardFile.isFile) {
- logger.warn("Supplied proguard configuration file does not exist: ${proguardFile.path}")
- null
- } else {
- proguardFile
- }
+ removeIfAbsent(proguardFile)
}
}
}
+ private fun removeIfAbsent(file: File): File? {
+ return if(file.isFile) {
+ file
+ } else if(file.isDirectory) {
+ logger.warn("Directories as proguard configuration are not supported: ${file.path}")
+ null
+ } else {
+ logger.warn("Supplied proguard configuration does not exist: ${file.path}")
+ null
+ }
+ }
+
abstract class CreationAction<TaskT : ProguardConfigurableTask, CreationConfigT: ConsumableCreationConfig>
@JvmOverloads
internal constructor(