pull/1576/merge
Jaehwa Noh 2 days ago committed by GitHub
commit e61efb988b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -193,11 +193,10 @@ Then copy the resulting baseline profile from the emulator to [`app/src/main/bas
Run the following command to get and analyse compose compiler metrics:
```bash
./gradlew assembleRelease -PenableComposeCompilerMetrics=true -PenableComposeCompilerReports=true
./gradlew assembleRelease -PenableComposeCompilerReportsAndMetrics=true --rerun-tasks
```
The reports files will be added to [build/compose-reports](build/compose-reports). The metrics files will also be
added to [build/compose-metrics](build/compose-metrics).
The reports files will be added to `build/module-name/compose-reports`, and the metrics files will also be added to `build/module-name/compose-metrics`.
For more information on Compose compiler metrics, see [this blog post](https://medium.com/androiddevelopers/jetpack-compose-stability-explained-79c10db270c8).

@ -18,7 +18,6 @@ package com.google.samples.apps.nowinandroid
import com.android.build.api.dsl.CommonExtension
import org.gradle.api.Project
import org.gradle.api.provider.Provider
import org.gradle.kotlin.dsl.assign
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.dependencies
@ -45,20 +44,19 @@ internal fun Project.configureAndroidCompose(
}
extensions.configure<ComposeCompilerGradlePluginExtension> {
fun Provider<String>.onlyIfTrue() = flatMap { provider { it.takeIf(String::toBoolean) } }
fun Provider<*>.relativeToRootProject(dir: String) = map {
isolated.rootProject.projectDirectory
.dir("build")
.dir(projectDir.toRelativeString(rootDir))
}.map { it.dir(dir) }
project.providers.gradleProperty("enableComposeCompilerMetrics").onlyIfTrue()
.relativeToRootProject("compose-metrics")
.let(metricsDestination::set)
val isComposeCompilerReportsAndMetricsEnabled = providers.gradleProperty("enableComposeCompilerReportsAndMetrics").orNull.toBoolean()
if (isComposeCompilerReportsAndMetricsEnabled) {
/**
* Transform a [String] into a Directory where the `compose-metrics` and `compose-reports`
* being written, such as `build/modules-name/String`.
*/
fun String.toRelativeDirectoryForMetricsAndReport() =
isolated.rootProject.projectDirectory.dir("build/${projectDir.toRelativeString(rootDir)}/$this")
project.providers.gradleProperty("enableComposeCompilerReports").onlyIfTrue()
.relativeToRootProject("compose-reports")
.let(reportsDestination::set)
metricsDestination = "compose-metrics".toRelativeDirectoryForMetricsAndReport()
reportsDestination = "compose-reports".toRelativeDirectoryForMetricsAndReport()
}
stabilityConfigurationFiles
.add(isolated.rootProject.projectDirectory.file("compose_compiler_config.conf"))

Loading…
Cancel
Save