transition

問題を報告 ソースを表示 ナイトリー · 7.4 . 7.3 7.2 7.1 7.0 6.5

依存関係エッジをまたぐ構成遷移を表します。たとえば、//package:foo が構成遷移で //package:bar に依存している場合、これらの 2 つのターゲットの構成は異なります。//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 callable; 必須
この遷移を実装する関数。この関数には常に settingsattr の 2 つのパラメータがあります。settings パラメータは、キーセットが inputs パラメータで定義される辞書です。したがって、各ビルド設定 --//foo=bar で、inputs//foo が含まれている場合、settings のエントリは settings['//foo']='bar' になります。

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

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

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