From 3e4c45f6b0921966e3d70775df0e1fc2b8780b1b Mon Sep 17 00:00:00 2001
From: Martin Ling <martin-git@earth.li>
Date: Thu, 18 Sep 2025 12:45:23 +0100
Subject: [PATCH 57/75] Test build with multiple CMake versions.

---
 .github/workflows/build.yml | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index e2cc0d1a..3b312385 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -22,6 +22,18 @@ jobs:
     strategy:
       matrix:
         os: ['macos-latest', 'ubuntu-latest', 'windows-latest']
+        cmake: ['3.10.0', '3.16.0', '3.21.0', '4.0.0', 'latest']
+        exclude:
+          # GitHub runners use Apple silicon. Support added in CMake 3.19.2.
+          - os: 'macos-latest'
+            cmake: '3.10.0'
+          - os: 'macos-latest'
+            cmake: '3.16.0'
+          # GitHub runners use Visual Studio 2022. Support added in CMake 3.21.
+          - os: 'windows-latest'
+            cmake: '3.10.0'
+          - os: 'windows-latest'
+            cmake: '3.16.0'
 
       # Don't cancel all builds when one fails
       fail-fast: false
@@ -30,6 +42,11 @@ jobs:
     steps:
     - uses: actions/checkout@v4
 
+    - name: Setup cmake
+      uses: jwlawson/actions-setup-cmake@v2
+      with:
+        cmake-version: ${{ matrix.cmake }}
+
     - name: Install dependencies (macOS)
       run: brew install fftw
       if: matrix.os == 'macos-latest'
@@ -127,13 +144,14 @@ jobs:
       with:
         name: hackrf-tools-windows
         path: ${{github.workspace}}/install/bin
-      if: matrix.os == 'windows-latest'
+      if: matrix.os == 'windows-latest' && matrix.cmake == 'latest'
 
   firmware:
     strategy:
       matrix:
         os: ['macos-latest', 'ubuntu-latest']
         board: ['HACKRF_ONE', 'JAWBREAKER', 'RAD1O']
+        cmake: ['3.10.0', 'latest']
 
       # Don't cancel all builds when one fails
       fail-fast: false
@@ -144,6 +162,11 @@ jobs:
       with:
         submodules: true
 
+    - name: Setup cmake
+      uses: jwlawson/actions-setup-cmake@v2
+      with:
+        cmake-version: ${{ matrix.cmake }}
+
     - name: Install Arm GNU Toolchain
       uses: carlosperate/arm-none-eabi-gcc-action@v1
 
-- 
2.47.3

