transition

Denuncia un problema Ver fuente Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Representa una transición de configuración en un borde 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)

Es una transición que lee un conjunto de parámetros de configuración de compilación de entrada y escribe un conjunto de parámetros de configuración 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"],
)

Puedes averiguar más detalles aquí.

Parámetros

Parámetro Descripción
implementation callable; 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 mediante 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 attr es una referencia a ctx.attr. Esto permite que la función de implementación acceda a los atributos de la regla para posibilitar las transiciones con parámetros para atributos.

Esta función debe mostrar un dict del identificador de la configuración de compilación al valor de configuración de compilación. Esto representa la transición de la configuración: para cada entrada en el dict que se muestra, la transición actualiza esa configuración al valor nuevo. No se modifica el resto de la configuración. Esta función también puede mostrar un list de dict o un dict de dict en el caso de una transición dividida.

inputs secuencia de cadenas; obligatoria
Es la lista de parámetros de configuración de compilación que puede leer esta transición. Este se convierte en el conjunto de claves del parámetro de configuración del parámetro de la función de implementación.
outputs secuencia de cadenas; obligatoria
Es la lista de parámetros de configuración de compilación que puede escribir esta transición. Debe ser un superconjunto del conjunto de claves del diccionario que muestra esta transición.