Merge branch 'sscache' into 'master'

Draft: Support build with sccache in podman

See merge request redox-os/redox!1605
This commit is contained in:
Wildan Mubarok 2025-07-03 14:13:07 +00:00
commit 701d7532f7
2 changed files with 21 additions and 1 deletions

View File

@ -31,6 +31,9 @@ HOST_CARGO=env -u RUSTUP_TOOLCHAIN -u CC -u TARGET cargo
REDOXFS_MKFS_FLAGS?=
## Set to 1 to enable Podman build, any other value will disable it
PODMAN_BUILD?=1
## Enable sccache to speed up cargo builds
## only do this by default if this is inside podman
SSCACHE_BUILD?=$(PODMAN_BUILD)
## The containerfile to use for the Podman base image
CONTAINERFILE?=podman/redox-base-containerfile
@ -41,11 +44,18 @@ export REDOX_MAKE=make
ifneq ($(PODMAN_BUILD),1)
HOST_TARGET := $(shell env -u RUSTUP_TOOLCHAIN rustc -vV | grep host | cut -d: -f2 | tr -d " ")
ifneq ($(HOST_TARGET),x86_64-unknown-linux-gnu)
# The binary prefix is only built for x86_64 Linux hosts
$(info The binary prefix is only built for x86_64 Linux hosts)
PREFIX_BINARY=0
endif
endif
ifeq ($(SSCACHE_BUILD),1)
ifeq (,$(shell command -v sccache))
$(info sccache not found in PATH)
SSCACHE_BUILD=0
endif
endif
UNAME := $(shell uname)
ifeq ($(UNAME),Darwin)
FUMOUNT=umount
@ -112,6 +122,13 @@ RANLIB=$(GNU_TARGET)-gcc-ranlib
READELF=$(GNU_TARGET)-readelf
STRIP=$(GNU_TARGET)-strip
ifeq ($(SSCACHE_BUILD),1)
CC_WRAPPER:=sccache
CC=$(CC_WRAPPER) $(GNU_TARGET)-gcc
CXX=$(CC_WRAPPER) $(GNU_TARGET)-g++
export RUSTC_WRAPPER:=$(CC_WRAPPER)
endif
## Rust cross compile variables
export AR_$(subst -,_,$(TARGET)):=$(AR)
export CC_$(subst -,_,$(TARGET)):=$(CC)

View File

@ -7,3 +7,6 @@ curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
cargo +stable install --force --version 0.1.1 cargo-config
cargo +stable install --force --version 1.16.0 just
cargo +stable install --force --version 0.27.0 cbindgen
SCCACHE_PATH=https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-$(uname -m)-unknown-linux-musl.tar.gz
curl -sSL $SCCACHE_PATH | tar -xz -C ~/.cargo/bin --strip-components=1 --wildcards '*/sccache'