redox/recipes/dev/rust/recipe.toml
2025-12-07 20:54:23 +07:00

56 lines
1.7 KiB
TOML

[source]
git = "https://gitlab.redox-os.org/redox-os/rust.git"
branch = "redox-2025-10-03"
shallow_clone = true
[build]
template = "custom"
dependencies = [
"llvm21",
"zlib",
]
dev-dependencies = [
"llvm21.dev",
"llvm21.runtime",
"host:llvm21",
"host:llvm21.dev",
"host:llvm21.runtime",
]
script = """
DYNAMIC_INIT
# Linker flags for stage2 compiler (host -> target)
export LDFLAGS_x86_64_unknown_redox="${LDFLAGS}" # LLVM
export CARGO_TARGET_X86_64_UNKNOWN_REDOX_RUSTFLAGS="\
-Clink-args=-L${COOKBOOK_SYSROOT}/lib \
-Clink-args=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib \
-Clink-args=-lz"
# Hack for Rust errorneusly running `llvm-config --version` on cross compiled llvm-config
cat "${COOKBOOK_ROOT}/bin/x86_64-unknown-redox-llvm-config" > "${COOKBOOK_SYSROOT}/bin/llvm-config"
# Linker flags for stage1 compiler (host -> host)
export RUSTFLAGS_BOOTSTRAP="\
-Clink-args=-L${COOKBOOK_TOOLCHAIN}/lib \
-Clink-args=-Wl,-rpath-link,${COOKBOOK_TOOLCHAIN}/lib"
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}"
# Don't poison the stage1 compiler (host -> host)
unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP
python3 "${COOKBOOK_SOURCE}/x.py" install \
--config "${COOKBOOK_RECIPE}/config.toml" \
--jobs $(nproc)
mkdir -p "${COOKBOOK_STAGE}"/usr
rsync -av --delete "${COOKBOOK_BUILD}"/install/* "${COOKBOOK_STAGE}"/usr/
# TODO: rustdoc
"""
[package]
dependencies = [
"cargo"
]
# TODO: Not implemented
# version_script = """
# printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
# """