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. |