19
19
required : true
20
20
type : string
21
21
22
+ ds2_revision :
23
+ required : true
24
+ type : string
25
+
22
26
indexstore_db_revision :
23
27
required : true
24
28
type : string
155
159
required : true
156
160
type : string
157
161
162
+ ANDROID_NDK_VERSION :
163
+ required : true
164
+ type : string
165
+
158
166
WINDOWS_CMAKE_C_FLAGS :
159
167
required : true
160
168
type : string
@@ -307,6 +315,159 @@ jobs:
307
315
name : sqlite-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.swift_toolchain_sqlite_version }}
308
316
path : ${{ github.workspace }}/BuildRoot/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr
309
317
318
+ ds2_tools :
319
+ # TODO: Build this on macOS or make an equivalent Mac-only job
320
+ if : inputs.build_os == 'Windows'
321
+ runs-on : ${{ inputs.default_build_runner }}
322
+
323
+ name : ds2 Build Tools
324
+
325
+ steps :
326
+ - uses : actions/checkout@v4
327
+ with :
328
+ repository : compnerd/ds2
329
+ ref : ${{ inputs.ds2_revision }}
330
+ path : ${{ github.workspace }}/SourceCache/ds2
331
+ show-progress : false
332
+
333
+ - uses : compnerd/gha-setup-vsdevenv@main
334
+ with :
335
+ host_arch : amd64
336
+ components : ' Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
337
+ arch : amd64
338
+
339
+ # TODO(issues/205): Preload Chocolatey package manager on Azure images so we can remove this step.
340
+ - uses : andrurogerz/ensure-chocolatey@v1
341
+
342
+ - name : Install Flex and Bison Tools
343
+ run : choco install winflexbison3
344
+
345
+ - name : Configure RegsGen2
346
+ run : |
347
+ cmake -B ${{ github.workspace }}/BinaryCache/RegsGen2 `
348
+ -S ${{ github.workspace }}/SourceCache/ds2/Tools/RegsGen2 `
349
+ -C ${{ github.workspace }}/SourceCache/ds2/cmake/caches/MSVCWarnings.cmake `
350
+ -D CMAKE_BUILD_TYPE=Release `
351
+ -D CMAKE_C_COMPILER=cl `
352
+ -D CMAKE_CXX_COMPILER=cl `
353
+ -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" `
354
+ -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" `
355
+ -D CMAKE_MT=mt `
356
+ -G Ninja
357
+
358
+ - name : Build RegsGen2
359
+ run : cmake --build ${{ github.workspace }}/BinaryCache/RegsGen2 --config Release
360
+
361
+ - uses : actions/upload-artifact@v4
362
+ with :
363
+ name : windows-regsgen2
364
+ path : |
365
+ ${{ github.workspace }}/BinaryCache/RegsGen2/regsgen2.exe
366
+
367
+ ds2 :
368
+ # TODO: Build this on macOS or make an equivalent Mac-only job
369
+ if : inputs.build_os == 'Windows'
370
+ needs : [ds2_tools]
371
+ runs-on : ${{ inputs.default_build_runner }}
372
+
373
+ strategy :
374
+ fail-fast : false
375
+ matrix :
376
+ include :
377
+ - arch : arm64
378
+ cc : clang
379
+ cflags : ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
380
+ cxx : clang++
381
+ cxxflags : ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
382
+ os : Android
383
+ extra_flags : -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
384
+
385
+ - arch : armv7
386
+ cc : clang
387
+ cflags : ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
388
+ cxx : clang++
389
+ cxxflags : ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
390
+ os : Android
391
+ extra_flags : -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a
392
+
393
+ - arch : i686
394
+ cc : clang
395
+ cflags : ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
396
+ cxx : clang++
397
+ cxxflags : ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
398
+ os : Android
399
+ extra_flags : -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86
400
+
401
+ - arch : x86_64
402
+ cc : clang
403
+ cflags : ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
404
+ cxx : clang++
405
+ cxxflags : ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
406
+ os : Android
407
+ extra_flags : -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64
408
+
409
+ name : ${{ matrix.os }} ${{ matrix.arch }} ds2
410
+
411
+ steps :
412
+ - uses : actions/checkout@v4
413
+ with :
414
+ repository : compnerd/ds2
415
+ ref : ${{ inputs.ds2_revision }}
416
+ path : ${{ github.workspace }}/SourceCache/ds2
417
+ show-progress : false
418
+
419
+ - uses : compnerd/gha-setup-vsdevenv@main
420
+ with :
421
+ host_arch : amd64
422
+ components : ' Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
423
+ arch : ${{ matrix.arch }}
424
+
425
+ # TODO(issues/205): Preload Chocolatey package manager on Azure images so we can remove this step.
426
+ - uses : andrurogerz/ensure-chocolatey@v1
427
+
428
+ - name : Install Flex and Bison Tools
429
+ run : choco install winflexbison3
430
+
431
+ - uses : actions/download-artifact@v4
432
+ with :
433
+ name : windows-regsgen2
434
+ path : ${{ github.workspace }}/BinaryCache/RegsGen2
435
+
436
+ - uses : nttld/setup-ndk@v1
437
+ id : setup-ndk
438
+ with :
439
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
440
+
441
+ - name : Configure DS2
442
+ run : |
443
+ $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }}
444
+ cmake -B ${{ github.workspace }}/BinaryCache/ds2 `
445
+ -S ${{ github.workspace }}/SourceCache/ds2 `
446
+ -D CMAKE_BUILD_TYPE=Release `
447
+ -D CMAKE_C_COMPILER=${{ matrix.cc }} `
448
+ -D CMAKE_C_FLAGS="${{ matrix.cflags }}" `
449
+ -D CMAKE_CXX_COMPILER=${{ matrix.cxx }} `
450
+ -D CMAKE_CXX_FLAGS="${{ matrix.cxxflags }}" `
451
+ -D CMAKE_MT=mt `
452
+ -D MSVC_C_ARCHITECTURE_ID=${{ matrix.arch }} `
453
+ -D DS2_REGSGEN2=${{ github.workspace }}/BinaryCache/RegsGen2/regsgen2.exe `
454
+ -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BinaryCache/Library/Developer `
455
+ -D CMAKE_SYSTEM_NAME=${{ matrix.os }} `
456
+ -D CMAKE_ANDROID_NDK=$NDKPATH `
457
+ ${{ matrix.extra_flags }} `
458
+ -G Ninja
459
+
460
+ - name : Build DS2
461
+ run : cmake --build ${{ github.workspace }}/BinaryCache/ds2
462
+
463
+ - name : Install DS2
464
+ run : cmake --build ${{ github.workspace }}/BinaryCache/ds2 --target install
465
+
466
+ - uses : actions/upload-artifact@v4
467
+ with :
468
+ name : ds2-${{ matrix.os }}-${{ matrix.arch }}
469
+ path : ${{ github.workspace }}/BinaryCache/Library/Developer
470
+
310
471
cmark_gfm :
311
472
runs-on : ${{ inputs.default_build_runner }}
312
473
@@ -603,7 +764,7 @@ jobs:
603
764
- uses : nttld/setup-ndk@v1
604
765
id : setup-ndk
605
766
with :
606
- ndk-version : r26b
767
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
607
768
608
769
- name : Compute workspace hash
609
770
id : workspace_hash
@@ -873,7 +1034,7 @@ jobs:
873
1034
- uses : nttld/setup-ndk@v1
874
1035
id : setup-ndk
875
1036
with :
876
- ndk-version : r26b
1037
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
877
1038
878
1039
- name : Configure zlib
879
1040
run : |
@@ -1015,7 +1176,7 @@ jobs:
1015
1176
- uses : nttld/setup-ndk@v1
1016
1177
id : setup-ndk
1017
1178
with :
1018
- ndk-version : r26b
1179
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
1019
1180
1020
1181
- name : Configure curl
1021
1182
run : |
@@ -1228,7 +1389,7 @@ jobs:
1228
1389
- uses : nttld/setup-ndk@v1
1229
1390
id : setup-ndk
1230
1391
with :
1231
- ndk-version : r26b
1392
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
1232
1393
1233
1394
- name : Configure libxml2
1234
1395
run : |
@@ -1439,7 +1600,7 @@ jobs:
1439
1600
- uses : nttld/setup-ndk@v1
1440
1601
id : setup-ndk
1441
1602
with :
1442
- ndk-version : r26b
1603
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
1443
1604
1444
1605
- name : Configure LLVM
1445
1606
run : |
@@ -1932,7 +2093,7 @@ jobs:
1932
2093
- uses : nttld/setup-ndk@v1
1933
2094
id : setup-ndk
1934
2095
with :
1935
- ndk-version : r26b
2096
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
1936
2097
1937
2098
- name : Configure libdispatch
1938
2099
run : |
@@ -3348,7 +3509,7 @@ jobs:
3348
3509
# TODO: Build this on macOS or make an equivalent Mac-only job
3349
3510
if : inputs.build_os == 'Windows'
3350
3511
name : Package Android SDK & Runtime
3351
- needs : [stdlib, sdk]
3512
+ needs : [stdlib, ds2, sdk]
3352
3513
runs-on : ${{ inputs.default_build_runner }}
3353
3514
3354
3515
strategy :
@@ -3357,12 +3518,16 @@ jobs:
3357
3518
include :
3358
3519
- arch : arm64
3359
3520
cpu : aarch64
3521
+ triple_no_api_level : aarch64-unknown-linux-android
3360
3522
- arch : armv7
3361
3523
cpu : armv7
3524
+ triple_no_api_level : armv7-unknown-linux-androideabi
3362
3525
- arch : i686
3363
3526
cpu : i686
3527
+ triple_no_api_level : i686-unknown-linux-android
3364
3528
- arch : x86_64
3365
3529
cpu : x86_64
3530
+ triple_no_api_level : x86_64-unknown-linux-android
3366
3531
3367
3532
steps :
3368
3533
- uses : actions/download-artifact@v4
@@ -3374,6 +3539,11 @@ jobs:
3374
3539
name : Android-sdk-${{ matrix.arch }}
3375
3540
path : ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform
3376
3541
3542
+ - uses : actions/download-artifact@v4
3543
+ with :
3544
+ name : ds2-Android-${{ matrix.arch }}
3545
+ path : ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/Library/Android/${{ matrix.triple_no_api_level }}
3546
+
3377
3547
- uses : actions/checkout@v4
3378
3548
with :
3379
3549
repository : swiftlang/swift-installer-scripts
0 commit comments