diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ac91e31fe8..81d3cd5b91 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -513,6 +513,7 @@ jobs: include: - arch: x86 - arch: x64 + - arch: arm64 runs-on: windows-latest @@ -560,7 +561,7 @@ jobs: uses: ammaraskar/msvc-problem-matcher@master - name: Build (with installer) - if: needs.source.outputs.is_tag == 'true' && matrix.arch != 'arm64' + if: needs.source.outputs.is_tag == 'true' uses: lukka/run-cmake@v3 with: cmakeListsOrSettingsJson: CMakeListsTxtAdvanced @@ -569,7 +570,7 @@ jobs: cmakeAppendedArgs: ' -GNinja -DOPTION_USE_NSIS=ON -DHOST_BINARY_DIR=${{ github.workspace }}/build-host -DCMAKE_BUILD_TYPE=RelWithDebInfo' - name: Build (without installer) - if: needs.source.outputs.is_tag != 'true' || matrix.arch == 'arm64' + if: needs.source.outputs.is_tag != 'true' uses: lukka/run-cmake@v3 with: cmakeListsOrSettingsJson: CMakeListsTxtAdvanced diff --git a/cmake/InstallAndPackage.cmake b/cmake/InstallAndPackage.cmake index be00cfc153..b54c8131ac 100644 --- a/cmake/InstallAndPackage.cmake +++ b/cmake/InstallAndPackage.cmake @@ -70,10 +70,15 @@ endif() # Windows is a bit more annoying to detect; using the size of void pointer # seems to be the most robust. if(WIN32) - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(ARCHITECTURE "win64") + # Check if the MSVC platform has been defined + if ("$ENV{Platform}" STREQUAL "arm64") + set(ARCHITECTURE "arm64") else() - set(ARCHITECTURE "win32") + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ARCHITECTURE "win64") + else() + set(ARCHITECTURE "win32") + endif() endif() endif() if(APPLE AND CMAKE_OSX_ARCHITECTURES)