Cargo pasa algunos metadatos al compilador a través de variables de entorno, cuya lista se puede encontrar en las páginas de documentación de Cargo .
El entorno del compilador se completa fill_env
en el código de Cargo. Este código se ha vuelto más complejo desde versiones anteriores, y la lista completa de variables ya no es obvia porque puede ser dinámico. Sin embargo, al menos las siguientes variables se establecen allí (de la lista en los documentos):
CARGO_MANIFEST_DIR
CARGO_PKG_AUTHORS
CARGO_PKG_DESCRIPTION
CARGO_PKG_HOMEPAGE
CARGO_PKG_NAME
CARGO_PKG_REPOSITORY
CARGO_PKG_VERSION
CARGO_PKG_VERSION_MAJOR
CARGO_PKG_VERSION_MINOR
CARGO_PKG_VERSION_PATCH
CARGO_PKG_VERSION_PRE
Puede acceder a las variables de entorno utilizando la env!()
macro. Para insertar el número de versión de su programa, puede hacer esto:
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION);
Si desea que su programa se compile incluso sin Cargo, puede usar option_env!()
:
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION.unwrap_or("unknown"));