From 5c88c60c2b4a9435ff0e91b2c240ccaf2c086039 Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Thu, 27 Oct 2022 18:11:30 +0200 Subject: [PATCH] using ccache on github actions --- .github/workflows/Linux.yml | 6 +++++- .github/workflows/MacOS.yml | 6 +++++- .github/workflows/Windows.yml | 6 +++++- scripts/Linux/1_build.sh | 7 ++++++- scripts/Windows/1_build.sh | 7 ++++++- scripts/macOS/1_build.sh | 7 ++++++- 6 files changed, 33 insertions(+), 6 deletions(-) diff --git a/.github/workflows/Linux.yml b/.github/workflows/Linux.yml index 712d9855d..93140dbfb 100644 --- a/.github/workflows/Linux.yml +++ b/.github/workflows/Linux.yml @@ -37,10 +37,14 @@ jobs: else echo "artifact_suffix=" >> $GITHUB_OUTPUT fi + - name: Ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ runner.os }}-${{ github.ref }}-${{ matrix.precision }} - name: Configure and Build shell: bash run: | - bash scripts/${{ runner.os }}/1_build.sh --${{ matrix.precision }} --nightly + bash scripts/${{ runner.os }}/1_build.sh --${{ matrix.precision }} --nightly --ccache - name: Deploy and AppImage shell: bash run: | diff --git a/.github/workflows/MacOS.yml b/.github/workflows/MacOS.yml index fad273c15..4cdc6679d 100644 --- a/.github/workflows/MacOS.yml +++ b/.github/workflows/MacOS.yml @@ -36,10 +36,14 @@ jobs: else echo "artifact_suffix=" >> $GITHUB_OUTPUT fi + - name: Ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ runner.os }}-${{ github.ref }}-${{ matrix.precision }} - name: Configure and Build shell: bash run: | - bash scripts/${{ runner.os }}/1_build.sh --${{ matrix.precision }} --nightly --use_brew_llvm + bash scripts/${{ runner.os }}/1_build.sh --${{ matrix.precision }} --nightly --use_brew_llvm --ccache - name: Deploy shell: bash run: | diff --git a/.github/workflows/Windows.yml b/.github/workflows/Windows.yml index 00f65a22d..61c814e2d 100644 --- a/.github/workflows/Windows.yml +++ b/.github/workflows/Windows.yml @@ -42,10 +42,14 @@ jobs: shell: C:\shells\msys2bash.cmd {0} run: | bash scripts/${{ runner.os }}/0_download_ext.sh + - name: Ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ runner.os }}-${{ github.ref }}-${{ matrix.precision }} - name: Configure and Build shell: bash run: | - bash scripts/${{ runner.os }}/1_build.sh --${{ matrix.precision }} --nightly + bash scripts/${{ runner.os }}/1_build.sh --${{ matrix.precision }} --nightly --ccache - name: Deploy shell: C:\shells\msys2bash.cmd {0} run: | diff --git a/scripts/Linux/1_build.sh b/scripts/Linux/1_build.sh index 4c9213454..92a339bb9 100644 --- a/scripts/Linux/1_build.sh +++ b/scripts/Linux/1_build.sh @@ -20,6 +20,7 @@ CORES="-j4" DOUBLE_PRECISION_OPTION="" NIGHTLY_OPTION="" QT_DIR="" +CCACHE="" #check parameters for i in "$@" @@ -49,6 +50,10 @@ case $i in QT_DIR=${i#*=} shift # past argument=value ;; + --ccache) + CCACHE="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + shift # past argument=value + ;; *) # unknown option ;; @@ -75,6 +80,6 @@ if [ ! -z "$QT_DIR" ] then export Qt5_DIR=$QT_DIR fi -cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH $DOUBLE_PRECISION_OPTION $NIGHTLY_OPTION $SOURCE_PATH +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH $CCACHE $DOUBLE_PRECISION_OPTION $NIGHTLY_OPTION $SOURCE_PATH make $CORES make install diff --git a/scripts/Windows/1_build.sh b/scripts/Windows/1_build.sh index ea3269209..09eab2a93 100644 --- a/scripts/Windows/1_build.sh +++ b/scripts/Windows/1_build.sh @@ -19,6 +19,7 @@ INSTALL_PATH=$SOURCE_PATH/../install DOUBLE_PRECISION_OPTION="" NIGHTLY_OPTION="" QT_DIR="" +CCACHE="" #check parameters for i in "$@" @@ -44,6 +45,10 @@ case $i in QT_DIR=${i#*=} shift # past argument=value ;; + --ccache) + CCACHE="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + shift # past argument=value + ;; *) # unknown option ;; @@ -71,6 +76,6 @@ then export Qt5_DIR=$QT_DIR fi -cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH $DOUBLE_PRECISION_OPTION $NIGHTLY_OPTION $SOURCE_PATH +cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH $CCACHE $DOUBLE_PRECISION_OPTION $NIGHTLY_OPTION $SOURCE_PATH ninja ninja install diff --git a/scripts/macOS/1_build.sh b/scripts/macOS/1_build.sh index 41db6d2be..35b39d3a6 100644 --- a/scripts/macOS/1_build.sh +++ b/scripts/macOS/1_build.sh @@ -22,6 +22,7 @@ DOUBLE_PRECISION_OPTION="" NIGHTLY_OPTION="" USE_BREW_LLVM=false QT_DIR="" +CCACHE="" #check parameters for i in "$@" @@ -55,6 +56,10 @@ case $i in USE_BREW_LLVM=true shift # past argument=value ;; + --ccache) + CCACHE="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + shift # past argument=value + ;; *) # unknown option ;; @@ -84,6 +89,6 @@ if [ "$USE_BREW_LLVM" = true ] ; then fi cd $BUILD_PATH -cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH $DOUBLE_PRECISION_OPTION $NIGHTLY_OPTION $SOURCE_PATH +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH $CCACHE $DOUBLE_PRECISION_OPTION $NIGHTLY_OPTION $SOURCE_PATH make $CORES make install