移行

依存関係エッジをまたぐ構成の transition を表します。たとえば、//package:foo が構成のトランジションで //package:bar に依存している場合、//package:bar(とその依存関係)の構成は、//package:foo の構成にトランジション関数で指定された変更を加えたものになります。

メンバー

transition

transition transition(*, implementation, inputs, outputs)

一連の入力ビルド設定を読み取り、一連の出力ビルド設定を書き込む transition。

例:

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 呼び出し可能。 必須
この transition を実装する関数。この関数には常に settingsattr の 2 つのパラメータがあります。settings パラメータは、キーセットが inputs パラメータで定義された辞書です。したがって、ビルド設定 --//foo=bar の場合、inputs//foo が含まれていると、settings にエントリ settings['//foo']='bar' が含まれます。

attr パラメータは ctx.attr への参照です。これにより、実装関数はルールの属性にアクセスして、属性パラメータ化された transition を可能にできます。

この関数は、ビルド設定識別子からビルド設定値への dict を返す必要があります。これは構成の transition を表します。返された dict の各エントリについて、transition はその設定を新しい値に更新します。その他の設定は変更されません。この関数は、分割 transition の場合、dictlist または dictdict を返すこともできます。

inputs 文字列シーケンス。 必須
この transition で読み取ることができるビルド設定のリスト。これは、実装関数パラメータの settings パラメータのキーセットになります。
outputs 文字列シーケンス。 必須
この transition で書き込むことができるビルド設定のリスト。これは、この transition によって返される辞書のキーセットのスーパーセットである必要があります。