]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
[CMake] Add toolchain files for cross-compiling ARM with Clang. develop
authorMika Lindqvist <postmaster@raasu.org>
Fri, 19 Jun 2026 14:19:48 +0000 (17:19 +0300)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Mon, 22 Jun 2026 10:11:21 +0000 (12:11 +0200)
.github/workflows/cmake.yml
cmake/toolchain-aarch64-clang.cmake [new file with mode: 0644]
cmake/toolchain-armv7a-clang.cmake [new file with mode: 0644]

index 88a8b422cad24e24384ce6e812afabc85c45684c..61ac3ef3c96060da8ba6490294f26d400342708a 100644 (file)
@@ -196,6 +196,15 @@ jobs:
             cmake-args: -DZLIB_COMPAT=ON -DWITH_SANITIZER=Undefined
             coverage: ubuntu_gcc_aarch64_compat_ubsan
 
+          - name: Ubuntu Clang ARMv7-A
+            os: ubuntu-24.04-arm
+            cache-key: armhf
+            compiler: clang
+            cxx-compiler: clang++
+            cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armv7a-clang.cmake -DWITH_ARMV8=OFF
+            packages: qemu-user crossbuild-essential-armhf
+            # Coverage disabled for Clang
+
           - name: Ubuntu Clang AARCH64 MSAN
             os: ubuntu-24.04-arm
             compiler: clang
diff --git a/cmake/toolchain-aarch64-clang.cmake b/cmake/toolchain-aarch64-clang.cmake
new file mode 100644 (file)
index 0000000..39590a5
--- /dev/null
@@ -0,0 +1,17 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+set(CMAKE_SYSTEM_VERSION 1)
+
+set(CMAKE_C_COMPILER clang)
+set(CMAKE_C_COMPILER_TARGET "aarch64-linux-gnu")
+set(CMAKE_CXX_COMPILER clang++)
+set(CMAKE_CXX_COMPILER_TARGET "aarch64-linux-gnu")
+
+set(CMAKE_CROSSCOMPILING TRUE)
+set(CMAKE_CROSSCOMPILING_EMULATOR qemu-aarch64 -L /usr/${CMAKE_C_COMPILER_TARGET}/)
+
+set(CMAKE_FIND_ROOT_PATH /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)
diff --git a/cmake/toolchain-armv7a-clang.cmake b/cmake/toolchain-armv7a-clang.cmake
new file mode 100644 (file)
index 0000000..484ac7e
--- /dev/null
@@ -0,0 +1,17 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR armv7-a)
+set(CMAKE_SYSTEM_VERSION 1)
+
+set(CMAKE_C_COMPILER clang)
+set(CMAKE_C_COMPILER_TARGET "armv7a-linux-gnueabihf")
+set(CMAKE_CXX_COMPILER clang++)
+set(CMAKE_CXX_COMPILER_TARGET "armv7a-linux-gnueabihf")
+
+set(CMAKE_CROSSCOMPILING TRUE)
+set(CMAKE_CROSSCOMPILING_EMULATOR qemu-arm -cpu cortex-a7 -L /usr/arm-linux-gnueabihf/)
+
+set(CMAKE_FIND_ROOT_PATH /usr/arm-linux-gnueabihf)
+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)