Representa una transición de configuración en un perímetro de dependencia. Por ejemplo, si //package:foo
depende de //package:bar
con una transición de configuración, la configuración de estos dos destinos será diferente: la transición de //package:bar
se determinará por la de //package:foo
, según la función definida por un objeto de transición.
Miembros
transition
transition transition(implementation, inputs, outputs)
Ejemplo:
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"], )
Puedes averiguar más detalles aquí.
Parámetros
Parámetro | Descripción |
---|---|
implementation
|
obligatorio La función que implementa esta transición. Esta función siempre tiene dos parámetros: settings y attr . El parámetro settings es un diccionario cuyo conjunto de claves se define por el parámetro de entradas. Por lo tanto, para cada configuración de compilación --//foo=bar , si inputs contiene //foo , settings tendrá una entrada settings['//foo']='bar' .El parámetro Esta función debe mostrar un |
inputs
|
sequence of strings ;
obligatorioLista de configuraciones de compilación que se pueden leer con esta transición. Esto se convierte en el conjunto clave del parámetro de configuración del parámetro de la función de implementación. |
outputs
|
sequence of strings ;
obligatorioLista de configuraciones de compilación que se pueden escribir con esta transición. Debe ser un superconjunto del conjunto de claves del diccionario que muestra esta transición. |