path: install/ccache
retention-days: 3
+ build_linux_riscv64_binary_glibc:
+ timeout-minutes: 30
+ name: Linux riscv64 binary (glibc)
+ runs-on: ubuntu-22.04
+ strategy:
+ fail-fast: false
+ steps:
+ - name: Prepare environment
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y g++-riscv64-linux-gnu libc6-dev-arm64-cross
+ - name: Get source
+ uses: actions/checkout@v4
+ - name: Build binary
+ env:
+ CMAKE_GENERATOR: Ninja
+ CMAKE_PARAMS: |
+ -D CMAKE_TOOLCHAIN_FILE=../toolchains/riscv64-linux-gnu.cmake
+ -D CMAKE_EXE_LINKER_FLAGS_INIT=-static-libstdc++
+ run: ci/build-binary
+ - name: Upload binary
+ uses: actions/upload-artifact@v4
+ with:
+ name: linux-riscv64-glibc-binary
+ path: install/ccache
+ retention-days: 3
+
build_linux_musl_static_binary:
timeout-minutes: 30
name: Linux ${{ matrix.arch }} binary (musl static)
- build_linux_aarch64_binary_glibc
- build_linux_musl_static_binary
- build_linux_x86_64_binary_glibc
+ - build_linux_riscv64_binary_glibc
- build_windows_binary
runs-on: ubuntu-24.04
steps:
source_extensions=(tar.gz tar.xz)
linux_bin_extensions=(tar.gz tar.xz)
-linux_archs=(aarch64 x86_64)
+linux_archs=(aarch64 riscv64 x86_64)
# windows_archs=(aarch64 i686 x86_64)
windows_archs=(aarch64 x86_64)
add "Linux ${arch} binary release glibc ${ext}" "ccache-${version}-linux-${arch}-glibc.${ext}"
done
for ext in "${linux_bin_extensions[@]}"; do
- add "Linux ${arch} binary release musl static ${ext}" "ccache-${version}-linux-${arch}-musl-static.${ext}"
+ if [ "${arch}" == "riscv64" ]; then
+ # Not available, lacking native Github-hosted runners
+ true
+ else
+ add "Linux ${arch} binary release musl static ${ext}" "ccache-${version}-linux-${arch}-musl-static.${ext}"
+ fi
done
done
for arch in "${windows_archs[@]}"; do
prepare_posix_binary_release darwin gz
prepare_posix_binary_release linux-aarch64-glibc gz xz
prepare_posix_binary_release linux-aarch64-musl-static gz xz
+prepare_posix_binary_release linux-riscv64-glibc gz xz
prepare_posix_binary_release linux-x86_64-glibc gz xz
prepare_posix_binary_release linux-x86_64-musl-static gz xz
--- /dev/null
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR riscv64)
+set(TOOLCHAIN_PREFIX riscv64-linux-gnu)
+set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
+set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)