@@ -72,13 +72,16 @@ jobs:
7272 run : |
7373 cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "$env:msbuild_config_props" cppwinrt.sln /t:fast_fwd
7474
75+ - name : Build x86 prebuild tool
76+ if : matrix.arch == 'arm64'
77+ run : |
78+ cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "$env:msbuild_config_props" /p:Platform=x86 cppwinrt.sln /t:cppwinrt
79+
7580 - name : Build cppwinrt
76- if : matrix.arch != 'arm64'
7781 run : |
7882 cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "$env:msbuild_config_props" cppwinrt.sln /t:cppwinrt
7983
8084 - name : Upload built executables
81- if : matrix.arch != 'arm64'
8285 uses : actions/upload-artifact@v3
8386 with :
8487 name : msvc-build-${{ matrix.arch }}-${{ matrix.config }}-bin
@@ -103,10 +106,14 @@ jobs:
103106 fail-fast : false
104107 matrix :
105108 compiler : [MSVC, clang-cl]
106- arch : [x86, x64]
109+ arch : [x86, x64, arm64 ]
107110 config : [Debug, Release]
108111 test_exe : [test, test_cpp20, test_win7, test_fast, test_slow, test_old, test_module_lock_custom, test_module_lock_none]
109112 exclude :
113+ - arch : arm64
114+ config : Debug
115+ - compiler : clang-cl
116+ arch : arm64
110117 - compiler : clang-cl
111118 config : Release
112119 runs-on : windows-latest
@@ -131,11 +138,19 @@ jobs:
131138 cmd /c "LLVM_VS2017\install.bat" 1
132139
133140 - name : Fetch cppwinrt executables
141+ if : matrix.arch != 'arm64'
134142 uses : actions/download-artifact@v3
135143 with :
136144 name : msvc-build-${{ matrix.arch }}-${{ matrix.config }}-bin
137145 path : _build/${{ matrix.arch }}/${{ matrix.config }}/
138146
147+ - name : Fetch x86 cppwinrt executables (arm64 only)
148+ if : matrix.arch == 'arm64'
149+ uses : actions/download-artifact@v3
150+ with :
151+ name : msvc-build-x86-Release-bin
152+ path : _build/x86/Release/
153+
139154 - name : Download nuget
140155 run : |
141156 mkdir ".\.nuget"
@@ -186,7 +201,11 @@ jobs:
186201 run : |
187202 $target_configuration = "${{ matrix.config }}"
188203 $target_platform = "${{ matrix.arch }}"
189- & "_build\$target_platform\$target_configuration\cppwinrt.exe" -in local -out _build\$target_platform\$target_configuration -verbose
204+ $cppwinrt_path = "_build\$target_platform\$target_configuration\cppwinrt.exe"
205+ if ($target_platform -eq "arm64") {
206+ $cppwinrt_path = "_build\x86\Release\cppwinrt.exe"
207+ }
208+ & $cppwinrt_path -in local -out _build\$target_platform\$target_configuration -verbose
190209
191210 - name : Build test '${{ matrix.test_exe }}'
192211 run : |
@@ -230,6 +249,7 @@ jobs:
230249 }
231250
232251 - name : Run test '${{ matrix.test_exe }}'
252+ if : matrix.arch != 'arm64'
233253 run : |
234254 $target_configuration = "${{ matrix.config }}"
235255 $target_platform = "${{ matrix.arch }}"
@@ -241,6 +261,18 @@ jobs:
241261 }
242262 & $test_path --use-colour yes
243263
264+ - name : Upload arm64 test executables
265+ if : matrix.arch == 'arm64'
266+ uses : actions/upload-artifact@v3
267+ with :
268+ name : msvc-tests-${{ matrix.arch }}-${{ matrix.config }}-bin
269+ path : |
270+ _build/${{ matrix.arch }}/${{ matrix.config }}/*.exe
271+ _build/${{ matrix.arch }}/${{ matrix.config }}/*.dll
272+ _build/${{ matrix.arch }}/${{ matrix.config }}/*.winmd
273+ _build/${{ matrix.arch }}/${{ matrix.config }}/*.lib
274+ _build/${{ matrix.arch }}/${{ matrix.config }}/*.pdb
275+
244276 build-msvc-natvis :
245277 name : ' Build natvis'
246278 strategy :
0 commit comments