diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt index 47e7a50c0..f16a8051a 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt @@ -53,13 +53,16 @@ internal fun Project.configureAndroidCompose( extensions.configure { fun Provider.onlyIfTrue() = flatMap { provider { it.takeIf(String::toBoolean) } } + fun Provider<*>.relativeToRootProject(dir: String) = flatMap { + rootProject.layout.buildDirectory.dir(projectDir.toRelativeString(rootDir)) + }.map { it.dir(dir) } - project.providers.gradleProperty("enableComposeCompilerMetrics") - .onlyIfTrue().flatMap { rootProject.layout.buildDirectory.dir("compose-metrics") } + project.providers.gradleProperty("enableComposeCompilerMetrics").onlyIfTrue() + .relativeToRootProject("compose-metrics") .let(metricsDestination::set) - project.providers.gradleProperty("enableComposeCompilerReports") - .onlyIfTrue().flatMap { rootProject.layout.buildDirectory.dir("compose-reports") } + project.providers.gradleProperty("enableComposeCompilerReports").onlyIfTrue() + .relativeToRootProject("compose-reports") .let(reportsDestination::set) stabilityConfigurationFile = rootProject.layout.projectDirectory.file("compose_compiler_config.conf")