From 4c66118bf349131ba236122440fdc24d15019623 Mon Sep 17 00:00:00 2001 From: Ilia Shipitsin Date: Sun, 31 May 2026 22:54:20 +0200 Subject: [PATCH] CI: apply to windows.yml automatical VS detection follow up of d9f46760ffa1ed3a5db670336a9e85a0ff3fde45 --- .github/workflows/windows.yml | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 87065dfb..8205bfaf 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -8,9 +8,9 @@ jobs: strategy: matrix: platform: [ - { ARCHITECTURE: x86, COMPILER_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/bin/clang-cl.exe", VCPKG_TRIPLET: "x86-windows-static", VCVARS_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars32.bat", RUNNER: "windows-latest", CMAKE_EXTRA_FLAGS: ""}, - { ARCHITECTURE: x64, COMPILER_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/x64/bin/clang-cl.exe", VCPKG_TRIPLET: "x64-windows-static", VCVARS_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat", RUNNER: "windows-latest", CMAKE_EXTRA_FLAGS: ""}, - { ARCHITECTURE: arm64, COMPILER_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/ARM64/bin/clang-cl.exe", VCPKG_TRIPLET: "arm64-windows-static", VCVARS_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvarsarm64.bat", RUNNER: "windows-11-arm", CMAKE_EXTRA_FLAGS: "-DOQS_PERMIT_UNSUPPORTED_ARCHITECTURE=ON"} + { ARCHITECTURE: x86, VCPKG_TRIPLET: "x86-windows-static", RUNNER: "windows-latest", CMAKE_EXTRA_FLAGS: ""}, + { ARCHITECTURE: x64, VCPKG_TRIPLET: "x64-windows-static", RUNNER: "windows-latest", CMAKE_EXTRA_FLAGS: ""}, + { ARCHITECTURE: arm64, VCPKG_TRIPLET: "arm64-windows-static", RUNNER: "windows-11-arm", CMAKE_EXTRA_FLAGS: "-DOQS_PERMIT_UNSUPPORTED_ARCHITECTURE=ON"} ] runs-on: ${{ matrix.platform.RUNNER }} name: ${{ matrix.platform.ARCHITECTURE }} @@ -31,14 +31,33 @@ jobs: - name: Build env: ARCHITECTURE: ${{ matrix.platform.ARCHITECTURE }} - COMPILER_PATH: ${{ matrix.platform.COMPILER_PATH }} VCPKG_TRIPLET: ${{ matrix.platform.VCPKG_TRIPLET }} - VCVARS_PATH: ${{ matrix.platform.VCVARS_PATH }} CMAKE_EXTRA_FLAGS: ${{ matrix.platform.CMAKE_EXTRA_FLAGS }} run: | set BUILD_NUMBER=0 mkdir build cd build + + for /f "usebackq delims=" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -property installationPath`) do set "VSINSTALL=%%i" + if "%VSINSTALL%"=="" ( + echo Visual Studio installation was not found. + exit /b 1 + ) + + if /i "%ARCHITECTURE%"=="x86" ( + set "VCVARS_PATH=%VSINSTALL%\VC\Auxiliary\Build\vcvars32.bat" + set "COMPILER_PATH=%VSINSTALL%\VC\Tools\Llvm\bin\clang-cl.exe" + ) else if /i "%ARCHITECTURE%"=="x64" ( + set "VCVARS_PATH=%VSINSTALL%\VC\Auxiliary\Build\vcvars64.bat" + set "COMPILER_PATH=%VSINSTALL%\VC\Tools\Llvm\x64\bin\clang-cl.exe" + ) else if /i "%ARCHITECTURE%"=="arm64" ( + set "VCVARS_PATH=%VSINSTALL%\VC\Auxiliary\Build\vcvarsarm64.bat" + set "COMPILER_PATH=%VSINSTALL%\VC\Tools\Llvm\ARM64\bin\clang-cl.exe" + ) else ( + echo Unsupported architecture: %ARCHITECTURE% + exit /b 1 + ) + call "%VCVARS_PATH%" cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="C:\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=%VCPKG_TRIPLET% -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER="%COMPILER_PATH%" -DCMAKE_CXX_COMPILER="%COMPILER_PATH%" -DBUILD_NUMBER=%BUILD_NUMBER% %CMAKE_EXTRA_FLAGS% .. cmake --build .