Browse Source

Add option to disable compose resources generation

pull/4526/head
xiaozhikang 2 months ago
parent
commit
8899cbf6a8
  1. 4
      gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesExtension.kt
  2. 3
      gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesGenerator.kt
  3. 16
      gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt

4
gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesExtension.kt

@ -17,17 +17,19 @@ abstract class ResourcesExtension {
*/
var packageOfResClass: String = ""
enum class ResourceClassGeneration { Auto, Always }
enum class ResourceClassGeneration { Auto, Always, Never }
//to support groovy DSL
val auto = ResourceClassGeneration.Auto
val always = ResourceClassGeneration.Always
val never = ResourceClassGeneration.Never
/**
* The mode of resource class generation.
*
* - `auto`: The Res class will be generated if the current project has an explicit "implementation" or "api" dependency on the resource's library.
* - `always`: Unconditionally generate the Res class. This may be useful when the resources library is available transitively.
* - `never`: Never generate the Res class.
*/
var generateResClass: ResourceClassGeneration = auto
}

3
gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesGenerator.kt

@ -323,6 +323,9 @@ private fun Project.configureResourceGenerator(
ResourcesExtension.ResourceClassGeneration.Always -> {
true
}
ResourcesExtension.ResourceClassGeneration.Never -> {
false
}
}
}

16
gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt

@ -511,4 +511,20 @@ class ResourcesTest : GradlePluginTestBase() {
.map { it.toPath().relativeTo(actualPath) }.sorted().joinToString("\n")
assertEquals(expectedFilesCount, actualFilesCount)
}
@Test
fun testResourcesTaskDisabled() = with(testProject("misc/commonResources")) {
file("build.gradle.kts").appendText(
"""
compose {
resources {
generateResClass = never
}
}
""".trimIndent()
)
gradle("generateComposeResClass").checks {
check.logContains("Generation Res class is disabled")
}
}
}
Loading…
Cancel
Save