From b318e8dc6ba132cdcfc0837d5ca74fd4732f6887 Mon Sep 17 00:00:00 2001 From: Konstantin Tskhovrebov Date: Fri, 1 Mar 2024 16:05:12 +0100 Subject: [PATCH] [resources] Fix Res class generation if the library is declared as 'api' --- .../compose/resources/ResourcesGenerator.kt | 14 ++++++++------ .../misc/commonResources/build.gradle.kts | 4 +++- 2 files changed, 11 insertions(+), 7 deletions(-) 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 f31fafc867a..f86d8b67538 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 @@ -140,12 +140,14 @@ private fun Project.configureResourceGenerator(commonComposeResourcesDir: File, if (ComposeProperties.alwaysGenerateResourceAccessors(project).get()) { true } else { - configurations - .getByName(commonSourceSet.implementationConfigurationName) - .allDependencies.any { dep -> - val depStringNotation = dep.let { "${it.group}:${it.name}:${it.version}" } - depStringNotation == ComposePlugin.CommonComponentsDependencies.resources - } + configurations.run { + //because the implementation configuration doesn't extend the api in the KGP ¯\_(ツ)_/¯ + getByName(commonSourceSet.implementationConfigurationName).allDependencies + + getByName(commonSourceSet.apiConfigurationName).allDependencies + }.any { dep -> + val depStringNotation = dep.let { "${it.group}:${it.name}:${it.version}" } + depStringNotation == ComposePlugin.CommonComponentsDependencies.resources + } } } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts index de773643c89..beda4225bf4 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts @@ -21,7 +21,9 @@ kotlin { dependencies { implementation(compose.runtime) implementation(compose.material) - implementation(compose.components.resources) + //there is the api to check correctness of the api configuration + //https://github.com/JetBrains/compose-multiplatform/issues/4405 + api(compose.components.resources) } } }