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 diferirá: la transición de //package:bar se determinará según 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 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 obligatorio
Es 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 le brinda a la función de implementación acceso a los atributos de la regla para que se puedan realizar transiciones parametrizadas por atributos.

Esta función debe mostrar un dict del identificador de configuración de compilación al valor de configuración de compilación. Esto representa la transición de configuración: para cada entrada en el dict que se muestra, la transición actualiza ese parámetro de 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.