mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-02 06:40:42 -07:00
60efd643d1
## Description of change Adds `ccache` support for local compiling and Github Actions environments. This significantly speeds up incremental builds, but cold starts will take a little longer to compile. The build script now has an `-i` flag to ignore the build cache if needed. You can also manually delete the `.ccache` folder to force a fresh build too. For the GA workflow, it uses the [`ccache-action`](https://github.com/hendrikmuhs/ccache-action) action to manage and store the cached build objects. This cache should be accessible to all branches. I also removed the `--no-cache` flag when building the `spicetools/spice` image since Docker will automatically invalidate `COPY` layers if it detects the copied files have changed. ### Compile times Compiled with a 7800X3D, 32GB 6000MT/s RAM. | `main` | `ccache` (fresh) | `ccache` (cached) | `ccache` (ignore cache) | |--------|--------|--------|--------| | 2m46.047s | 3m8.886s | 0m32.638s | 2m45.148s | ## Testing Tested incremental builds by using another branch that's rebased on top of this.
18 lines
514 B
Docker
18 lines
514 B
Docker
FROM ghcr.io/archlinux/archlinux:base-devel
|
|
|
|
RUN pacman --noconfirm -Syu git \
|
|
bash \
|
|
zip \
|
|
upx \
|
|
ninja \
|
|
cmake \
|
|
unzip \
|
|
mingw-w64-crt \
|
|
mingw-w64-winpthreads \
|
|
mingw-w64-gcc \
|
|
mingw-w64-headers \
|
|
mingw-w64-binutils \
|
|
ccache
|
|
RUN useradd user -m && echo "ALL ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
RUN su user -c "cd /tmp/ && git clone https://aur.archlinux.org/yay-bin.git --depth=1 && cd yay-bin && makepkg --noconfirm -si && yay --noconfirm -S mingw-w64-cmake"
|