From 3a73b64cfa7c0bf7ce7570c15b6d7e4bc57d1536 Mon Sep 17 00:00:00 2001 From: Charles Giessen Date: Wed, 15 Jul 2026 10:02:38 -0500 Subject: [PATCH 1/2] build: Update required CMake version to 3.28.3 Also removed workarounds for older CMake versions. --- CMakeLists.txt | 2 +- loader/CMakeLists.txt | 40 +++++++++++++++++----------------------- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c02db9d87..5c3751262 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ~~~ -cmake_minimum_required(VERSION 3.22.1) +cmake_minimum_required(VERSION 3.28.3) project(VULKAN_LOADER VERSION 1.4.356 LANGUAGES C) diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt index 46f83d016..de5bc0db3 100644 --- a/loader/CMakeLists.txt +++ b/loader/CMakeLists.txt @@ -113,8 +113,6 @@ set(OPT_LOADER_SRCS dev_ext_trampoline.c phys_dev_ext.c) set(ASM_FAILURE_MSG "Support for unknown physical device and device functions is disabled due to missing the required assembly support code. \ To support unknown functions, assembly must be added for the platform.\n") -set(ARMASM_CMAKE_FAILURE_MSG "Support for unknown physical device and device functions is disabled due to the CMake version ${CMAKE_VERSION} \ -being older than 3.26. Please update CMake to version 3.26 or newer.\n") # Check for assembler support if(WIN32 AND NOT USE_GAS) @@ -136,27 +134,23 @@ if(WIN32 AND NOT USE_GAS) endif() if (USE_MASM) if(SYSTEM_PROCESSOR MATCHES "arm") - if(CMAKE_VERSION VERSION_LESS "3.26.0") - set(ASM_FAILURE_MSG ${ARMASM_CMAKE_FAILURE_MSG}) - else() - # CMake's MARMASM detection regex only matches "ARM64", so for arm64ec it - # picks the 32-bit armasm, and even on arm64 it leaves the compiler as a bare - # name that the check below can't run without the dev tools on PATH. Resolve - # armasm64 (next to the C compiler) and use its full path. Drop this once - # CMake's detection learns about ARM64EC. - if(SYSTEM_PROCESSOR MATCHES "arm64") - get_filename_component(MARMASM_TOOLCHAIN_DIR "${CMAKE_C_COMPILER}" DIRECTORY) - find_program(MARMASM_ARMASM64 NAMES armasm64 HINTS "${MARMASM_TOOLCHAIN_DIR}") - endif() - if(MARMASM_ARMASM64) - set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}") - endif() - enable_language(ASM_MARMASM) - set(LOADER_ASM_DIALECT "MARMASM") - if(MARMASM_ARMASM64) - # enable_language resets the compiler to a bare name; re-assert the full path. - set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}") - endif() + # CMake's MARMASM detection regex only matches "ARM64", so for arm64ec it + # picks the 32-bit armasm, and even on arm64 it leaves the compiler as a bare + # name that the check below can't run without the dev tools on PATH. Resolve + # armasm64 (next to the C compiler) and use its full path. Drop this once + # CMake's detection learns about ARM64EC. + if(SYSTEM_PROCESSOR MATCHES "arm64") + get_filename_component(MARMASM_TOOLCHAIN_DIR "${CMAKE_C_COMPILER}" DIRECTORY) + find_program(MARMASM_ARMASM64 NAMES armasm64 HINTS "${MARMASM_TOOLCHAIN_DIR}") + endif() + if(MARMASM_ARMASM64) + set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}") + endif() + enable_language(ASM_MARMASM) + set(LOADER_ASM_DIALECT "MARMASM") + if(MARMASM_ARMASM64) + # enable_language resets the compiler to a bare name; re-assert the full path. + set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}") endif() else() enable_language(ASM_MASM) From 8b66ef32cec1ab9ee6f4af7b601adc9a33853ed9 Mon Sep 17 00:00:00 2001 From: Charles Giessen Date: Wed, 15 Jul 2026 10:18:50 -0500 Subject: [PATCH 2/2] ci: Bring Ubuntu versions forward Updates github actions to use Ubuntu 26. --- .github/workflows/build.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8abd4cb11..009e8be19 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,7 +42,7 @@ jobs: matrix: compiler: [ {cc: gcc, cxx: g++}, {cc: clang, cxx: clang++} ] config: [ Debug, Release ] - os: [ ubuntu-22.04, ubuntu-24.04 ] + os: [ ubuntu-26.04, ubuntu-24.04 ] steps: - uses: actions/checkout@v7 - uses: actions/setup-python@v6 @@ -54,10 +54,10 @@ jobs: # practice to try and support them so they don't have to install # the CMake tarball. Ideally the minimum we use matches what the default # package provided by Ubuntu via APT. - if: ${{ matrix.os == 'ubuntu-22.04' }} + if: ${{ matrix.os == 'ubuntu-24.04' }} uses: lukka/get-cmake@latest with: - cmakeVersion: 3.22.1 + cmakeVersion: 3.28.3 - run: sudo apt update - run: sudo apt install --yes --no-install-recommends libwayland-dev libxrandr-dev - run: | @@ -83,7 +83,7 @@ jobs: linux-no-asm: needs: codegen - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 30 steps: - uses: actions/checkout@v7 @@ -104,7 +104,7 @@ jobs: linux-32: needs: codegen - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 30 strategy: matrix: @@ -116,7 +116,7 @@ jobs: python-version: '3.11' - uses: lukka/get-cmake@latest with: - cmakeVersion: 3.22.1 + cmakeVersion: 3.28.3 - name: Enable 32 bit run: sudo dpkg --add-architecture i386 - run: sudo apt-get update @@ -143,7 +143,7 @@ jobs: linux-32-no-asm: needs: codegen - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 30 steps: - uses: actions/checkout@v7 @@ -152,7 +152,7 @@ jobs: python-version: '3.11' - uses: lukka/get-cmake@latest with: - cmakeVersion: 3.22.1 + cmakeVersion: 3.28.3 - name: Enable 32 bit run: sudo dpkg --add-architecture i386 - run: sudo apt-get update @@ -178,7 +178,7 @@ jobs: linux-arm: needs: codegen - runs-on: ubuntu-24.04-arm + runs-on: ubuntu-26.04-arm timeout-minutes: 30 steps: - uses: actions/checkout@v7 @@ -188,7 +188,7 @@ jobs: - name: Test CMake min uses: lukka/get-cmake@latest with: - cmakeVersion: 3.22.1 + cmakeVersion: 3.28.3 - run: sudo apt update - run: sudo apt install --yes --no-install-recommends libwayland-dev libxrandr-dev - run: | @@ -204,7 +204,7 @@ jobs: linux-threading: needs: codegen - runs-on: ubuntu-24.04-arm + runs-on: ubuntu-26.04-arm timeout-minutes: 30 steps: - uses: actions/checkout@v7 @@ -214,7 +214,7 @@ jobs: - name: Test CMake min uses: lukka/get-cmake@latest with: - cmakeVersion: 3.22.1 + cmakeVersion: 3.28.3 - run: sudo apt update - run: sudo apt install --yes --no-install-recommends libwayland-dev libxrandr-dev - run: |