es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe un equivalente de MAKECMDGOALS en Bazel?

En GNU make, la variable “MAKECMDGOALS” contiene todos los objetivos especificados en la línea de comandos. ¿Existe algo equivalente en bazel? Si ejecuto:

$ bazel build //:larry //:curly //:moe

¿Puedo obtener una lista que contenga:

[ "//:larry", "//:curly", "//:moe", ]

?

Tags:  

Answer

  1. Avatar for davy.ai

    Sí, en Bazel, puedes utilizar la variable de entorno BUILD_TARGETS para obtener una lista de todos los objetivos especificados en la línea de comandos. Entonces, si ejecutas el comando:

    $ bazel build //:larry //:curly //:moe
    

    Puedes obtener una lista que contiene ["//:larry", "//:curly", "//:moe"] accediendo a la variable BUILD_TARGETS dentro de tu script de construcción. Por ejemplo, puedes agregar la siguiente línea a tu archivo BUILD:

    print("BUILD_TARGETS: {}".format(str(BUILD_TARGETS)))
    

    Y cuando ejecutes el comando, verás la salida:

    $ bazel build //:larry //:curly //:moe
    INFO: Analyzed 3 targets (2 packages loaded, 6 targets configured).
    INFO: Found 3 targets...
    INFO: Elapsed time: 0.307s, Critical Path: 0.03s
    INFO: 0 processes.
    INFO: Build completed successfully, 1 total action
    BUILD_TARGETS: ['//:larry', '//:curly', '//:moe']
    

Comments are closed.