| name: 'Setup LoongArch64 toolchain' |
| description: 'Download Linux LoongArch64 toolchain and set output variables' |
| inputs: |
| version: |
| description: 'LoongArch64 version' |
| default: '2023.08.08' |
| outputs: |
| prefix: |
| description: "LoongArch toolchain prefix" |
| value: ${{ steps.final.outputs.prefix }} |
| cc: |
| description: "LoongArch C compiler" |
| value: ${{ steps.final.outputs.cc }} |
| cxx: |
| description: "LoongArch C++ compiler" |
| value: ${{ steps.final.outputs.cxx }} |
| runs: |
| using: 'composite' |
| steps: |
| - uses: actions/cache/restore@v5 |
| id: restore-cache |
| with: |
| path: /opt/cross-tools |
| key: loongarch64-${{ inputs.version }} |
| |
| - name: 'Download LoongArch64 gcc+glibc toolchain' |
| if: ${{ !steps.restore-cache.outputs.cache-hit }} |
| shell: bash |
| run: | |
| url="https://github.com/loongson/build-tools/releases/download/${{ inputs.version }}/CLFS-loongarch64-8.1-x86_64-cross-tools-gcc-glibc.tar.xz" |
| |
| wget "$url" -O /tmp/toolchain.tar.xz |
| |
| mkdir -p /opt |
| tar -C /opt -x -f /tmp/toolchain.tar.xz |
| |
| - uses: actions/cache/save@v5 |
| if: ${{ !steps.restore-cache.outputs.cache-hit }} |
| with: |
| path: /opt/cross-tools |
| key: loongarch64-${{ inputs.version }} |
| - name: 'Set output vars' |
| id: final |
| shell: bash |
| run: | |
| prefix=/opt/cross-tools |
| echo "prefix=${prefix}" >> $GITHUB_OUTPUT |
| cc="${prefix}/bin/loongarch64-unknown-linux-gnu-gcc" |
| cxx="${prefix}/bin/loongarch64-unknown-linux-gnu-g++" |
| echo "cc=${cc}" >> $GITHUB_OUTPUT |
| echo "cxx=${cxx}" >> $GITHUB_OUTPUT |
| echo "LOONGARCH64_CC=${cc}" >>$GITHUB_ENV |
| echo "LOONGARCH64_CXX=${cxx}" >>$GITHUB_ENV |