transition

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 attr es una referencia a ctx.attr. Esto le otorga a la función de implementación acceso a los atributos de la regla para hacer posibles las transiciones con parámetros.

Esta función debe mostrar un dict del identificador de la configuración de la compilación al valor de la configuración de la 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 nuevo valor. El resto de los parámetros de configuración no cambiaron. 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 sequence of strings; obligatorio
Lista 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; obligatorio
Lista 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.