12.3.2 Compose 编译器选项 DSL

原文链接: https://kotlinlang.org/docs/compose-compiler-options.html

12.3.2 Compose 编译器选项 DSL

Compose 编译器 Gradle 插件为各种编译器选项提供了 DSL。你可以在应用该插件的模块的 build.gradle.kts 文件的 composeCompiler {} 块中使用它来配置编译器。

你可以指定两类选项:

  • 通用编译器设置,可根据需要在任意项目中禁用或启用。
  • 特性标志,用于启用或禁用新的和实验性的特性,这些特性最终应当成为基线的一部分。

你可以在 Compose 编译器 Gradle 插件 API 参考中找到可用的通用设置列表和受支持的特性标志列表。

下面是一个配置示例:

1
2
3
4
5
6
7
8
composeCompiler {
    includeSourceInformation = true

    featureFlags = setOf(
        ComposeFeatureFlag.StrongSkipping.disabled(),
        ComposeFeatureFlag.OptimizeNonSkippingGroups
    )
}

警告: Gradle 插件为若干 Compose 编译器选项提供了默认值,而在 Kotlin 2.0 之前这些选项只能手动指定。如果你已经用 freeCompilerArgs 设置了其中任何一个选项,Gradle 就会报告重复选项错误。

特性标志的用途与用法

特性标志被组织成单独的一组选项,以便在新标志不断推出和弃用时尽量减少对顶层属性的改动。

要启用默认禁用的特性标志,请在集合中指定它,例如:

1
featureFlags = setOf(ComposeFeatureFlag.OptimizeNonSkippingGroups)

要禁用默认启用的特性标志,请对它调用 disabled() 函数,例如:

1
featureFlags = setOf(ComposeFeatureFlag.StrongSkipping.disabled())

如果你是直接配置 Compose 编译器,请使用以下语法向它传入特性标志:

-P plugin:androidx.compose.compiler.plugins.kotlin:featureFlag=<flag name>

关于受支持的特性标志列表,请参阅 Compose 编译器 Gradle 插件 API 参考中的列表。