mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-21 04:14:17 +08:00
60 lines
1.8 KiB
TOML
60 lines
1.8 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",
|
|
"curl",
|
|
"openssl1",
|
|
]
|
|
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
|
|
|
|
cat ${COOKBOOK_RECIPE}/config.toml > config.toml
|
|
sed -i "s|COOKBOOK_SYSROOT|${COOKBOOK_SYSROOT}|g" config.toml
|
|
sed -i "s|COOKBOOK_TOOLCHAIN|${COOKBOOK_TOOLCHAIN}|g" config.toml
|
|
|
|
python3 "${COOKBOOK_SOURCE}/x.py" install \
|
|
--config config.toml \
|
|
--jobs $(nproc)
|
|
|
|
mkdir -p "${COOKBOOK_STAGE}"/usr
|
|
rsync -av --delete "${COOKBOOK_BUILD}"/install/* "${COOKBOOK_STAGE}"/usr/
|
|
rm -rf "${COOKBOOK_STAGE}"/usr/lib/rustlib/*.log
|
|
"""
|
|
|
|
[[optional-packages]]
|
|
name = "doc"
|
|
files = [
|
|
"usr/share/doc/**",
|
|
]
|