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
estará determinada por la de //package:foo
, sujeta a la función definida por un objeto de transición.
Miembros
transition
transition transition(implementation, inputs, outputs)Es una transición que lee un conjunto de configuraciones de compilación de entrada y escribe un conjunto de configuraciones de compilación de salida.
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"], )
Para obtener más detalles, consulta aquí.
Parámetros
Parámetro | Descripción |
---|---|
implementation
|
required 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 lo define el parámetro de entradas. Por lo tanto, para cada parámetro de 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 parámetros de configuración de compilación que se pueden leer en 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 parámetros de configuración 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. |