@@ -243,3 +243,149 @@ jobs:
243
243
run : |
244
244
cd __build__
245
245
ctest --output-on-failure --no-tests=error -j 3 -R quick -C Debug
246
+
247
+ # setup windows-11-arm as it is new and does not have all requirements pre-installed.
248
+ setup-windows-arm64 :
249
+ runs-on : windows-11-arm
250
+ outputs :
251
+ vcpkg-root : ${{ steps.set-vcpkg-root.outputs.vcpkg-root }}
252
+
253
+ steps :
254
+ - uses : actions/checkout@v4
255
+
256
+ - name : Install vcpkg
257
+ run : |
258
+ if (!(Test-Path C:\vcpkg)) {
259
+ git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
260
+ C:\vcpkg\bootstrap-vcpkg.bat
261
+ }
262
+ else {
263
+ echo "vcpkg already installed"
264
+ }
265
+
266
+ - name : Restore vcpkg cache
267
+ id : cache-vcpkg
268
+ uses : actions/cache@v3
269
+ with :
270
+ path : |
271
+ C:\vcpkg\downloads
272
+ C:\vcpkg\installed
273
+ key : vcpkg-${{ runner.os }}-arm64
274
+ restore-keys : |
275
+ vcpkg-${{ runner.os }}-arm64
276
+
277
+ - name : Install OpenSSL via vcpkg (if not cached)
278
+ if : steps.cache-vcpkg.outputs.cache-hit != 'true'
279
+ run : |
280
+ C:\vcpkg\vcpkg install openssl:arm64-windows
281
+
282
+ - name : Set vcpkg-root output
283
+ id : set-vcpkg-root
284
+ shell : pwsh
285
+ run : |
286
+ echo "Writing vcpkg-root=C:\vcpkg to GITHUB_OUTPUT"
287
+ echo "vcpkg-root=C:\vcpkg" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append
288
+
289
+ - name : Log step output
290
+ run : |
291
+ echo "Step output is: ${{ steps.set-vcpkg-root.outputs.vcpkg-root }}"
292
+
293
+
294
+ b2-windows-arm64 :
295
+ needs : setup-windows-arm64
296
+ runs-on : windows-11-arm
297
+ steps :
298
+ - uses : actions/checkout@v4
299
+ with :
300
+ submodules : true
301
+
302
+ - name : Setup Boost
303
+ shell : cmd
304
+ run : |
305
+ bootstrap
306
+ b2 -d0 headers
307
+
308
+ # There is no mpi support yet for Windows arm64. So built without mpi for now
309
+ # pch needs to be turned off, otherwise few components fail.
310
+ # It requires additional parameters to be pass for selecting correct asm files for boost:context
311
+ - name : Build Boost
312
+ run : ./b2 -j2 toolset=msvc architecture=arm address-model=64 abi=ms pch=off --without-mpi --without-graph_parallel stage
313
+
314
+ - name : Install Boost
315
+ run : ./b2 -j2 toolset=msvc architecture=arm address-model=64 abi=ms pch=off --without-mpi --without-graph_parallel install
316
+
317
+ - name : Test Boost
318
+ run : |
319
+ cd status
320
+ ../b2 -j3 quick
321
+
322
+ # Win Arm64 CMake job
323
+ cmake-install-windows-arm64 :
324
+ needs : setup-windows-arm64
325
+ runs-on : windows-11-arm
326
+
327
+ steps :
328
+ - uses : actions/checkout@v4
329
+ with :
330
+ submodules : true
331
+
332
+ - name : Restore vcpkg cache
333
+ uses : actions/cache@v3
334
+ with :
335
+ path : |
336
+ C:\vcpkg\downloads
337
+ C:\vcpkg\installed
338
+ key : vcpkg-${{ runner.os }}-arm64
339
+
340
+ # We are using vcpkg to install dependencies such as OpenSSL in windows-11-arm runner.
341
+ - name : Configure Boost
342
+ run : |
343
+ mkdir __build__ && cd __build__
344
+ $vcpkgRoot="${{ needs.setup-windows-arm64.outputs.vcpkg-root }}"
345
+ cmake -DBUILD_SHARED_LIBS=ON `
346
+ -DCMAKE_TOOLCHAIN_FILE="$vcpkgRoot\scripts\buildsystems\vcpkg.cmake" `
347
+ -DVCPKG_TARGET_TRIPLET=arm64-windows ..
348
+
349
+ - name : Build Boost
350
+ run : |
351
+ cd __build__
352
+ cmake --build . -j 3
353
+
354
+ - name : Install Boost
355
+ run : |
356
+ cd __build__
357
+ cmake --build . -j 3 --target install
358
+
359
+ # Win Arm64 CMake test job
360
+ cmake-test-windows-arm64-quick :
361
+ needs : setup-windows-arm64
362
+ runs-on : windows-11-arm
363
+ steps :
364
+ - uses : actions/checkout@v4
365
+ with :
366
+ submodules : true
367
+
368
+ # Restore cache
369
+ - uses : actions/cache@v3
370
+ with :
371
+ path : |
372
+ C:\vcpkg\downloads
373
+ C:\vcpkg\installed
374
+ key : vcpkg-${{ runner.os }}-arm64
375
+
376
+ # we are using vcpkg to install OpenSSL in windows-11-arm runner.
377
+ - name : Configure Boost
378
+ run : |
379
+ mkdir __build__; cd __build__
380
+ $vcpkgRoot="${{ needs.setup-windows-arm64.outputs.vcpkg-root }}"
381
+ cmake -DBUILD_TESTING=ON -DCMAKE_TOOLCHAIN_FILE="$vcpkgRoot\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=arm64-windows ..
382
+
383
+ - name : Build tests
384
+ run : |
385
+ cd __build__
386
+ cmake --build . -j2 --target tests-quick
387
+
388
+ - name : Run tests
389
+ run : |
390
+ cd __build__
391
+ ctest --output-on-failure --no-tests=error -j2 -R quick -C Debug
0 commit comments