Skip to content

Compose 컴파일러 옵션 DSL

Compose 컴파일러 Gradle 플러그인은 다양한 컴파일러 옵션을 위한 DSL을 제공합니다. 이 DSL을 사용하여 플러그인을 적용하는 모듈의 build.gradle.kts 파일에 있는 composeCompiler {} 블록에서 컴파일러를 구성할 수 있습니다.

지정할 수 있는 옵션은 두 가지 종류가 있습니다:

  • 주어진 프로젝트에서 필요에 따라 비활성화하거나 활성화할 수 있는 일반 컴파일러 설정
  • 새롭고 실험적인 기능을 활성화하거나 비활성화하는 기능 플래그 (Feature flag), 이 기능은 결국 기준선(baseline)의 일부가 되어야 합니다.

사용 가능한 일반 설정 목록지원되는 기능 플래그 목록은 Compose 컴파일러 Gradle 플러그인 API 참조에서 찾을 수 있습니다.

다음은 설정 예시입니다:

kotlin
composeCompiler {
    includeSourceInformation = true

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

Gradle 플러그인은 Kotlin 2.0 이전에는 수동으로만 지정되던 몇 가지 Compose 컴파일러 옵션에 대한 기본값을 제공합니다. 예를 들어, 이러한 옵션 중 일부를 freeCompilerArgs로 설정한 경우, Gradle은 중복 옵션 오류를 보고합니다.

기능 플래그의 목적과 사용

기능 플래그는 새로운 플래그가 계속해서 출시되고 사용 중단됨에 따라 최상위 속성(top-level properties)에 대한 변경을 최소화하기 위해 별도의 옵션 세트로 구성됩니다.

기본적으로 비활성화된 기능 플래그를 활성화하려면, 세트에 지정합니다. 예를 들어:

kotlin
featureFlags = setOf(ComposeFeatureFlag.OptimizeNonSkippingGroups)

기본적으로 활성화된 기능 플래그를 비활성화하려면, disabled() 함수를 호출합니다. 예를 들어:

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

Compose 컴파일러를 직접 구성하는 경우, 다음 구문을 사용하여 기능 플래그를 전달합니다:

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

지원되는 기능 플래그 목록은 Compose 컴파일러 Gradle 플러그인 API 참조를 확인하세요.