Secuencias de comandos de compilación

A veces, una construcción normal a partir de cargo no es suficiente. Quizás tu crate necesita algunos prerequisitos antes de que cargo se compile con éxito, cosas como la generación de código o algún código nativo que deba compilarse. Para resolver este problema, tenemos secuencias de comandos de construcción que Cargo puede ejecutar.

Para agregar una secuencia de comandos de compilación a tu paquete, se puede especificar en el Cargo.toml de la siguiente manera:

[package]
...
build = "build.rs"

De lo contrario, Cargo buscará un archivo build.rs en el directorio del proyecto por defecto.

Cómo usar una secuencia de comandos de compilación

La secuencia de comandos de compilación es simplemente otro archivo de Rust que se compilará e invocará antes de compilar cualquier otra cosa en el paquete. Por lo tanto, puede usarse para cumplir con los requisitos previos de tu crate.

Cargo proporciona a la secuencia de comandos entradas a través de variables de entorno especificado aquí que se pueden utilizar.

La secuencia de comandos proporciona salida a través de stdout. Todas las líneas impresas se escriben en target/debug/build/<paquete>/output. Además, las líneas con el prefijo cargo: serán interpretadas directamente por Cargo y, por lo tanto, se pueden usar para definir parámetros para la compilación del paquete.

Para obtener más especificaciones y ejemplos, lee la Especificación de Cargo.