날짜 비워 두기: BazelCon 2023이 10월 24~25일에 Google 뮌헨에서 열립니다. 자세히 알아보기

transition

문제 신고 소스 보기

종속 항목 에지 전반의 구성 전환을 나타냅니다. 예를 들어 //package:foo가 구성 전환으로 //package:bar에 종속되는 경우 이 두 대상의 구성이 다릅니다. //package:bar의 전환은 전환 객체에 의해 정의된 함수에 따라 //package:foo의 전환에 의해 결정됩니다.

회원

transition

transition transition(implementation, inputs, outputs)

입력 빌드 설정 집합을 읽고 출력 빌드 설정 집합을 쓰는 전환입니다.

예:

def _transition_impl(settings, attr):
    # This transition just reads the current CPU value as a demonstration.
    # A real transition could incorporate this into its followup logic.
    current_cpu = settings["//command_line_option:cpu"]
    return {"//command_line_option:compilation_mode": "dbg"}

build_in_debug_mode = transition(
    implementation = _transition_impl,
    inputs = ["//command_line_option:cpu"],
    outputs = ["//command_line_option:compilation_mode"],
)

자세한 내용은 여기를 참고하세요.

매개변수

매개변수 설명
implementation 필수
이 전환을 구현하는 함수입니다. 이 함수에는 항상 settingsattr, 이렇게 두 개의 매개변수가 있습니다. settings 매개변수는 키 집합이 입력 매개변수로 정의되는 사전입니다. 따라서 각 빌드 설정에서 --//foo=barinputs//foo을 포함하면 settingssettings['//foo']='bar' 항목이 있습니다.

attr 매개변수는 ctx.attr의 참조입니다. 이를 통해 구현 함수에서 규칙의 속성에 액세스하여 속성 매개변수화된 전환을 가능하게 합니다.

이 함수는 빌드 설정 식별자에서 빌드 설정 값으로 dict를 반환해야 합니다. 이는 구성 전환을 나타냅니다. 즉, 반환된 dict의 항목마다, 전환이 새 값으로 업데이트됩니다. 다른 모든 설정은 변경되지 않았습니다. 이 함수는 분할 전환의 경우 dictlist 또는 dictdict를 반환할 수도 있습니다.

inputs sequence of strings, 필수
이 전환에서 읽을 수 있는 빌드 설정 목록입니다. 이 값은 구현 함수 매개변수의 설정 매개변수 키 세트가 됩니다.
outputs sequence of strings, 필수
이 전환에 의해 작성될 수 있는 빌드 설정 목록입니다. 이 전환은 이 전환에서 반환하는 사전의 키 집합의 상위 집합이어야 합니다.