]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
ci: add a Clang RISCV test target
authorIcenowy Zheng <uwu@icenowy.me>
Tue, 25 Mar 2025 14:37:02 +0000 (22:37 +0800)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Thu, 27 Mar 2025 17:16:33 +0000 (18:16 +0100)
Similar to the GCC one, this test target uses system toolchain and QEMU
too.

Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
.github/workflows/cmake.yml
cmake/toolchain-riscv-clang.cmake [new file with mode: 0644]

index f6d6979114502643ef3cc9f629e592048068d5cf..ddfb5268cf420604019739e609388ce3367b0a1f 100644 (file)
@@ -312,6 +312,11 @@ jobs:
             gcov-exec: riscv64-linux-gnu-gcov
             codecov: ubuntu_gcc_riscv64
 
+          - name: Ubuntu Clang RISC-V
+            os: ubuntu-latest
+            cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-riscv-clang.cmake
+            packages: qemu-user crossbuild-essential-riscv64
+
           - name: Ubuntu GCC SPARC64
             # qemu appears to be broken in newer versions of Ubuntu (see issue 1378)
             os: ubuntu-20.04
diff --git a/cmake/toolchain-riscv-clang.cmake b/cmake/toolchain-riscv-clang.cmake
new file mode 100644 (file)
index 0000000..71fa7f4
--- /dev/null
@@ -0,0 +1,16 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR riscv64)
+set(CMAKE_SYSTEM_VERSION 1)
+
+set(CMAKE_C_COMPILER clang)
+set(CMAKE_C_COMPILER_TARGET riscv64-linux-gnu)
+set(CMAKE_CXX_COMPILER clang++)
+set(CMAKE_CXX_COMPILER_TARGET riscv64-linux-gnu)
+
+set(CMAKE_CROSSCOMPILING TRUE)
+set(CMAKE_CROSSCOMPILING_EMULATOR qemu-riscv64 -cpu rv64,zba=true,zbb=true,zbc=true,zbs=true,v=true,vlen=512,elen=64,vext_spec=v1.0 -L /usr/${CMAKE_C_COMPILER_TARGET}/)
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)