Use sccache to accelerate Rust build

This commit is contained in:
He Sun 2020-11-02 14:36:20 +08:00 committed by Tate, Hongliang Tian
parent fe2a5629ba
commit 0bb8f5922e
5 changed files with 22 additions and 7 deletions

@ -8,12 +8,18 @@ EXEC_TARGET := $(RUST_OUT_DIR)/*occlum_exec*
.PHONY: all clean .PHONY: all clean
ifneq (, $(shell which sccache))
RUSTC_WRAPPER := sccache
else
RUSTC_WRAPPER :=
endif
all: $(SRC_FILES) all: $(SRC_FILES)
ifeq ($(OCCLUM_RELEASE_BUILD), 1) ifeq ($(OCCLUM_RELEASE_BUILD), 1)
@RUSTC_BOOTSTRAP=1 cargo build --release --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR) @RUSTC_BOOTSTRAP=1 RUSTC_WRAPPER=$(RUSTC_WRAPPER) cargo build --release --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR)
@echo "CARGO (release) => exec" @echo "CARGO (release) => exec"
else else
@RUSTC_BOOTSTRAP=1 cargo build --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR) @RUSTC_BOOTSTRAP=1 RUSTC_WRAPPER=$(RUSTC_WRAPPER) cargo build --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR)
@echo "CARGO (debug) => exec" @echo "CARGO (debug) => exec"
endif endif

@ -106,13 +106,19 @@ $(LIBOS_CORE_A): $(LIBOS_CORE_RS_A) $(C_OBJS) $(CXX_OBJS) $(S_OBJS) $(EDL_C_OBJS
@ar r $@ $(C_OBJS) $(CXX_OBJS) $(S_OBJS) $(EDL_C_OBJS) @ar r $@ $(C_OBJS) $(CXX_OBJS) $(S_OBJS) $(EDL_C_OBJS)
@echo "GEN => $@" @echo "GEN => $@"
ifneq (, $(shell which sccache))
RUSTC_WRAPPER := sccache
else
RUSTC_WRAPPER :=
endif
ifeq ($(OCCLUM_RELEASE_BUILD), 1) ifeq ($(OCCLUM_RELEASE_BUILD), 1)
$(LIBOS_CORE_RS_A): $(RUST_SRCS) $(LIBOS_CORE_RS_A): $(RUST_SRCS)
@RUSTC_BOOTSTRAP=1 cargo build --release --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR) @RUSTC_BOOTSTRAP=1 RUSTC_WRAPPER=$(RUSTC_WRAPPER) cargo build --release --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR)
@echo "CARGO (release) => $@" @echo "CARGO (release) => $@"
else else
$(LIBOS_CORE_RS_A): $(RUST_SRCS) $(LIBOS_CORE_RS_A): $(RUST_SRCS)
@RUSTC_BOOTSTRAP=1 cargo build --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR) @RUSTC_BOOTSTRAP=1 RUSTC_WRAPPER=$(RUSTC_WRAPPER) cargo build --target-dir=$(RUST_TARGET_DIR) -Z unstable-options --out-dir=$(RUST_OUT_DIR)
@echo "CARGO (debug) => $@" @echo "CARGO (debug) => $@"
endif endif

@ -93,7 +93,8 @@ ENV OCCLUM_RUST_VERSION=nightly-2020-04-07
RUN curl https://sh.rustup.rs -sSf | \ RUN curl https://sh.rustup.rs -sSf | \
sh -s -- --default-toolchain ${OCCLUM_RUST_VERSION} -y && \ sh -s -- --default-toolchain ${OCCLUM_RUST_VERSION} -y && \
rm -rf /root/.cargo/registry && rm -rf /root/.cargo/git && \ rm -rf /root/.cargo/registry && rm -rf /root/.cargo/git && \
cargo -V cargo -V && \
cargo install sccache
# Install Occlum toolchain # Install Occlum toolchain
COPY toolchains/gcc /tmp/gcc COPY toolchains/gcc /tmp/gcc

@ -63,7 +63,8 @@ ENV OCCLUM_RUST_VERSION=nightly-2020-09-08
RUN curl https://sh.rustup.rs -sSf | \ RUN curl https://sh.rustup.rs -sSf | \
sh -s -- --default-toolchain ${OCCLUM_RUST_VERSION} -y && \ sh -s -- --default-toolchain ${OCCLUM_RUST_VERSION} -y && \
rm -rf /root/.cargo/registry && rm -rf /root/.cargo/git && \ rm -rf /root/.cargo/registry && rm -rf /root/.cargo/git && \
cargo -V cargo -V && \
cargo install sccache
# Install Occlum toolchain # Install Occlum toolchain
COPY toolchains/gcc /tmp/gcc COPY toolchains/gcc /tmp/gcc

@ -75,7 +75,8 @@ ENV OCCLUM_RUST_VERSION=nightly-2020-09-08
RUN curl https://sh.rustup.rs -sSf | \ RUN curl https://sh.rustup.rs -sSf | \
sh -s -- --default-toolchain ${OCCLUM_RUST_VERSION} -y && \ sh -s -- --default-toolchain ${OCCLUM_RUST_VERSION} -y && \
rm -rf /root/.cargo/registry && rm -rf /root/.cargo/git && \ rm -rf /root/.cargo/registry && rm -rf /root/.cargo/git && \
cargo -V cargo -V && \
cargo install sccache
# Install Occlum toolchain # Install Occlum toolchain
COPY toolchains/gcc /tmp/gcc COPY toolchains/gcc /tmp/gcc