transition

Informar un problema Ver código fuente Nocturno · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Representa una transición de configuración a través de 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, 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 callable; required
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 con el parámetro inputs. 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 da a la función de implementación acceso a los atributos de la regla para que sean posibles las transiciones parametrizadas por atributos.

Esta función debe devolver un dict desde el identificador de configuración de compilación hasta el valor de configuración de compilación, lo que representa la transición de configuración: para cada entrada en el dict devuelto, la transición actualiza ese parámetro de configuración al valor nuevo. Todos los demás parámetros de configuración permanecen sin cambios. Esta función también puede devolver un list de dict o un dict de dict en el caso de una transición dividida.

inputs sequence de strings; obligatorio
Lista de parámetros de configuración de compilación que puede leer esta transición. Esta se convierte en el conjunto de claves del parámetro de configuración del parámetro de la función de implementación.
outputs sequence de strings; obligatorio
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 devuelve esta transición.