Skip to content

Commit

Permalink
Use feature flags in compose compiler plugin
Browse files Browse the repository at this point in the history
And slight cleanup

(cherry picked from commit 8f9a325895bb7b94c2ec92dd969094fc30b3b5e2)
  • Loading branch information
AntsyLich authored and jobobby04 committed Sep 1, 2024
1 parent 5243346 commit dea3891
Showing 1 changed file with 7 additions and 11 deletions.
18 changes: 7 additions & 11 deletions buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import org.gradle.kotlin.dsl.provideDelegate
import org.gradle.kotlin.dsl.the
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.compose.compiler.gradle.ComposeCompilerGradlePluginExtension
import org.jetbrains.kotlin.compose.compiler.gradle.ComposeFeatureFlag
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.io.File

Expand Down Expand Up @@ -75,25 +76,20 @@ internal fun Project.configureCompose(commonExtension: CommonExtension<*, *, *,
}

extensions.configure<ComposeCompilerGradlePluginExtension> {
// Enable strong skipping mode
enableStrongSkippingMode.set(true)

// Enable experimental compiler opts
// https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.9
enableNonSkippingGroupOptimization.set(true)
featureFlags.set(setOf(ComposeFeatureFlag.OptimizeNonSkippingGroups))

val enableMetrics = project.providers.gradleProperty("enableComposeCompilerMetrics").orNull.toBoolean()
val enableReports = project.providers.gradleProperty("enableComposeCompilerReports").orNull.toBoolean()

val rootProjectDir = rootProject.layout.buildDirectory.asFile.get()
val rootBuildDir = rootProject.layout.buildDirectory.asFile.get()
val relativePath = projectDir.relativeTo(rootDir)

if (enableMetrics) {
val buildDirPath = rootProjectDir.resolve("compose-metrics").resolve(relativePath)
metricsDestination.set(buildDirPath)
rootBuildDir.resolve("compose-metrics").resolve(relativePath).let(metricsDestination::set)
}

if (enableReports) {
val buildDirPath = rootProjectDir.resolve("compose-reports").resolve(relativePath)
reportsDestination.set(buildDirPath)
rootBuildDir.resolve("compose-reports").resolve(relativePath).let(reportsDestination::set)
}
}

Expand Down

0 comments on commit dea3891

Please sign in to comment.