Representa uma transição de configuração em uma borda de dependência. Por exemplo, se //package:foo depender de //package:bar com uma transição de configuração, a configuração desses dois destinos será diferente: a transição de //package:bar será determinada por //package:foo, conforme sujeito à função definida por um objeto de transição.
Membros
transição
transition transition(implementation, inputs, outputs)
Exemplo:
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"],
)Para saber mais detalhes, acesse esta página.
Parâmetros
| Parâmetro | Descrição |
|---|---|
implementation
|
obrigatório A função que implementa essa transição. Essa função sempre tem dois parâmetros: settings e attr. O parâmetro settings é um dicionário cujo conjunto de chaves é definido pelo parâmetro de entrada. Portanto, para cada configuração de build --//foo=bar, se inputs contiver //foo, settings terá uma entrada settings['//foo']='bar'.O parâmetro Essa função precisa retornar um |
inputs
|
sequence of strings
obrigatórioLista de configurações de compilação que podem ser lidas por esta transição. Ele se torna o conjunto principal do parâmetro de configurações do parâmetro da função de implementação. |
outputs
|
sequence of strings
obrigatórioLista de configurações de compilação que podem ser gravadas por esta transição. Precisa ser um superconjunto do conjunto de chaves do dicionário retornado por essa transição. |