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.
Participantes
transition
transition transition(implementation, inputs, outputs)Uma transição que lê um conjunto de configurações de build de entrada e grava um conjunto de configurações de saída de build.
Exemplos
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"], )
Confira mais detalhes aqui.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
necessá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 "inputs". 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 do build que podem ser lidas por essa transição. Esse se torna o conjunto de chaves do parâmetro de configurações do parâmetro da função de implementação. |
outputs
|
sequence of strings ;
obrigatórioLista de configurações do build que podem ser gravadas por essa transição. Precisa ser um superconjunto do conjunto de chaves do dicionário retornado por essa transição. |