# =============================================================================
#  renaser :: configuracion de cargo
# -----------------------------------------------------------------------------
#  El kernel se compila contra el target NATIVO precompilado `x86_64-unknown-none`
#  (bare-metal, soft-float, sin SSE). No hay JSON propio ni `build-std`: cero
#  burocracia del compilador, aislamiento de arquitectura sin friccion.
# =============================================================================

[unstable]
# Dependencias de artefacto (RFC 3028): permiten que el miembro `boot` ordene a
# cargo compilar el kernel para `x86_64-unknown-none` de forma automatica y
# reciba la ruta de su ELF. Sigue siendo una funcion inestable (nightly).
bindeps = true

# Banderas para TODA crate que se compile hacia `x86_64-unknown-none` (el
# target bare-metal del kernel). Apagar `debug-assertions` y `overflow-checks`
# elimina las `unchecked_mul::precondition_check` que la stdlib inyecta en
# debug — son verificaciones cuyo propio camino de panico, en bare-metal,
# escribe en regiones que el cargador no mapeo: un colapso DENTRO de la red
# de seguridad del colapso. Los `[profile]` no llegaban a las dependencias
# precompiladas; `rustflags` por target si lo hace.
[target.x86_64-unknown-none]
rustflags = ["-Cdebug-assertions=off", "-Coverflow-checks=off"]

[alias]
# Compila unicamente el kernel, en aislamiento de arquitectura. Se invoca por
# `--manifest-path` y NO por `-p kernel`: desde la Fase 7b el kernel y `boot`
# comparten la crate `formato`, y pedir `-p kernel` dentro del workspace —con
# el kernel a la vez como dependencia de artefacto— hace caer al resolvedor de
# features de cargo. Apuntar al manifiesto del kernel lo compila como raiz, sin
# rozar el grafo de artifact-deps.
kernel = "build --manifest-path kernel/Cargo.toml --target x86_64-unknown-none"
# Construye la imagen UEFI y abre QEMU (equivale a `cargo run -p boot`).
qemu = "run -p boot"
