diff --git a/.github/workflows/windows-alt.yml b/.github/workflows/windows-alt.yml index c81f5877913..e6cded52950 100644 --- a/.github/workflows/windows-alt.yml +++ b/.github/workflows/windows-alt.yml @@ -63,13 +63,56 @@ jobs: options: | CMAKE_SYSTEM_NAME=Windows \ CMAKE_SYSTEM_PROCESSOR=x86_64 \ - CMAKE_MAKE_PROGRAM=ninja.exe \ CMAKE_BUILD_TYPE=Release \ - name: Build Project run: cmake --build ./build --target all - name: Run tests run: cmake --build ./build --target run_tests - clang-cl: + clang-cl-msbuild: + if: github.repository_owner == 'aws' + strategy: + fail-fast: false + matrix: + target: + - x64 + - x64_arm64 + runs-on: windows-latest + env: + CMAKE_GENERATOR: "Visual Studio 17 2022" + CMAKE_GENERATOR_TOOLSET: "ClangCL,host=x64" + steps: + - if: ${{ matrix.target == 'x64' }} + name: Install NASM + uses: ilammy/setup-nasm@v1.5.1 + - name: Checkout + uses: actions/checkout@v4 + - uses: TheMrMilchmann/setup-msvc-dev@v3 + with: + arch: ${{ matrix.target }} + - if: ${{ matrix.target == 'x64' }} + name: Setup CMake + uses: threeal/cmake-action@v1.3.0 + with: + options: | + CMAKE_BUILD_TYPE=Release \ + - if: ${{ matrix.target == 'x64_arm64' }} + name: Setup CMake + uses: threeal/cmake-action@v1.3.0 + with: + options: | + CMAKE_GENERATOR_PLATFORM=ARM64 \ + CMAKE_SYSTEM_NAME=Windows \ + CMAKE_SYSTEM_PROCESSOR=ARM64 \ + CMAKE_BUILD_TYPE=Release \ + - name: Build Project + run: cmake --build ./build --target all_tests + - if: ${{ matrix.target == 'x64' }} + name: Run crypto_test + # MSVC places the tests executables in a different location. + # With MSVC, the "run_tests" target cannot locate the tests. + # We run "crypto_test" as a sanity check. + run: cmake --build ./build --target crypto_test + clang-cl-ninja: if: github.repository_owner == 'aws' strategy: fail-fast: false @@ -97,9 +140,6 @@ jobs: c-compiler: clang-cl cxx-compiler: clang-cl options: | - CMAKE_CROSSCOMPILING=${{ ((matrix.target == 'x64') && '0') || '1' }} \ - CMAKE_SYSTEM_NAME=Windows \ - CMAKE_SYSTEM_PROCESSOR=x86_64 \ CMAKE_BUILD_TYPE=Release \ - if: ${{ matrix.target == 'x64_arm64' }} name: Setup CMake @@ -109,7 +149,6 @@ jobs: c-compiler: clang-cl cxx-compiler: clang-cl options: | - CMAKE_CROSSCOMPILING=1 \ CMAKE_SYSTEM_NAME=Windows \ CMAKE_SYSTEM_PROCESSOR=ARM64 \ CMAKE_C_COMPILER_TARGET=arm64-pc-windows-msvc \