|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | | -set -e # exit on error |
4 | | -set -x # echo on |
5 | | -set -o pipefail # fail of any command in pipeline is an error |
| 3 | +source `dirname ${BASH_SOURCE[0]}`/../../config.sh |
6 | 4 |
|
7 | 5 | DIR="`dirname ${BASH_SOURCE[0]}`/../.." |
8 | 6 | DIR=`realpath $DIR` |
| 7 | +CCACHE_DIR=$DIR/ccache |
9 | 8 | if [[ -n "$GITHUB_WORKSPACE" ]]; then |
10 | | - echo "CCACHE_DIR=$DIR/ccache" >> "$GITHUB_ENV" |
| 9 | + echo "CCACHE_DIR=$CCACHE_DIR" >> "$GITHUB_ENV" |
11 | 10 | echo timestamp=$(date -u --iso-8601=seconds) >> "$GITHUB_OUTPUT" |
12 | 11 | fi |
13 | 12 |
|
| 13 | +apply_patch () { |
| 14 | + if patch -R -p1 --dry-run -b -i "$1" > /dev/null 2>&1; then |
| 15 | + echo "Patch $1 is already applied" |
| 16 | + else |
| 17 | + patch -p1 -b -i "$1" |
| 18 | + fi |
| 19 | +} |
| 20 | + |
| 21 | +mkdir -p $CCACHE_DIR |
| 22 | + |
14 | 23 | pushd / |
15 | 24 | echo "::group::/etc/makepkg.conf" |
16 | | - patch -p1 -b -i "$DIR/patches/ccache/0001-makepkg.patch" |
| 25 | + apply_patch "$DIR/patches/ccache/0001-makepkg.patch" |
17 | 26 | cat /etc/makepkg.conf |
18 | 27 | echo "::endgroup::" |
19 | 28 |
|
20 | 29 | echo "::group::/etc/makepkg_mingw.conf" |
21 | | - patch -p1 -b -i "$DIR/patches/ccache/0002-makepkg-mingw.patch" |
| 30 | + apply_patch "$DIR/patches/ccache/0002-makepkg-mingw.patch" |
22 | 31 | cat /etc/makepkg_mingw.conf |
23 | 32 | echo "::endgroup::" |
24 | 33 | popd |
| 34 | + |
| 35 | +pacman -S --noconfirm ccache |
| 36 | + |
| 37 | +pushd /usr/lib/ccache/bin |
| 38 | + echo "::group::Add aarch64 toolchain to ccache" |
| 39 | + export MSYS=winsymlinks |
| 40 | + ln -sf /usr/bin/ccache aarch64-w64-mingw32-c++ |
| 41 | + ln -sf /usr/bin/ccache aarch64-w64-mingw32-g++ |
| 42 | + ln -sf /usr/bin/ccache aarch64-w64-mingw32-gcc |
| 43 | + if [[ "$FLAVOR" = "CROSS" ]]; then |
| 44 | + ln -sf /usr/bin/true makeinfo |
| 45 | + fi |
| 46 | + echo "::endgroup::" |
| 47 | +popd |
0 commit comments