diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesExtension.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesExtension.kt index 7a83173e84..f50dae4624 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesExtension.kt +++ b/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 } \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesGenerator.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesGenerator.kt index 5a5135e687..ff90790463 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesGenerator.kt +++ b/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 + } } } diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt index 838424e4eb..7f46f68c7c 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt @@ -510,4 +510,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") + } + } } \ No newline at end of file