Skip to content

Commit 62fd69d

Browse files
authored
[Mac build] Build cmark-gfm on Mac (#816)
1 parent 75bbcee commit 62fd69d

File tree

2 files changed

+61
-52
lines changed

2 files changed

+61
-52
lines changed

.github/workflows/build-toolchain.yml

+4
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ jobs:
106106
swift_atomics_revision: ${{ steps.context.outputs.swift_atomics_revision }}
107107
swift_certificates_revision: ${{ steps.context.outputs.swift_certificates_revision }}
108108
swift_cmark_revision: ${{ steps.context.outputs.swift_cmark_revision }}
109+
swift_cmark_version: ${{ steps.context.outputs.swift_cmark_version }}
109110
swift_collections_revision: ${{ steps.context.outputs.swift_collections_revision }}
110111
swift_corelibs_foundation_revision: ${{ steps.context.outputs.swift_corelibs_foundation_revision }}
111112
swift_corelibs_libdispatch_revision: ${{ steps.context.outputs.swift_corelibs_libdispatch_revision }}
@@ -217,6 +218,7 @@ jobs:
217218
fi
218219
219220
echo swift_toolchain_sqlite_version=3.46.0 >> ${GITHUB_OUTPUT}
221+
echo swift_cmark_version=0.29.0.gfm.13 >> ${GITHUB_OUTPUT}
220222
221223
# FIXME(z2oh): Remove /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR when GitHub runner image updates to 20240610.1.
222224
# see: https://github.com/actions/runner-images/issues/10004
@@ -343,6 +345,7 @@ jobs:
343345
swift_atomics_revision: ${{ needs.context.outputs.swift_atomics_revision }}
344346
swift_certificates_revision: ${{ needs.context.outputs.swift_certificates_revision }}
345347
swift_cmark_revision: ${{ needs.context.outputs.swift_cmark_revision }}
348+
swift_cmark_version: ${{ needs.context.outputs.swift_cmark_version }}
346349
swift_collections_revision: ${{ needs.context.outputs.swift_collections_revision }}
347350
swift_corelibs_foundation_revision: ${{ needs.context.outputs.swift_corelibs_foundation_revision }}
348351
swift_corelibs_libdispatch_revision: ${{ needs.context.outputs.swift_corelibs_libdispatch_revision }}
@@ -407,6 +410,7 @@ jobs:
407410
swift_atomics_revision: ${{ needs.context.outputs.swift_atomics_revision }}
408411
swift_certificates_revision: ${{ needs.context.outputs.swift_certificates_revision }}
409412
swift_cmark_revision: ${{ needs.context.outputs.swift_cmark_revision }}
413+
swift_cmark_version: ${{ needs.context.outputs.swift_cmark_version }}
410414
swift_collections_revision: ${{ needs.context.outputs.swift_collections_revision }}
411415
swift_corelibs_foundation_revision: ${{ needs.context.outputs.swift_corelibs_foundation_revision }}
412416
swift_corelibs_libdispatch_revision: ${{ needs.context.outputs.swift_corelibs_libdispatch_revision }}

.github/workflows/swift-toolchain.yml

+57-52
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ on:
5555
required: true
5656
type: string
5757

58+
swift_cmark_version:
59+
required: true
60+
type: string
61+
5862
swift_collections_revision:
5963
required: true
6064
type: string
@@ -222,6 +226,10 @@ on:
222226
env:
223227
SCCACHE_DIRECT: on
224228

229+
defaults:
230+
run:
231+
shell: pwsh
232+
225233
jobs:
226234
sqlite:
227235
runs-on: ${{ inputs.default_build_runner }}
@@ -232,10 +240,6 @@ jobs:
232240

233241
name: ${{ matrix.os }} ${{ matrix.arch }} SQLite3
234242

235-
defaults:
236-
run:
237-
shell: pwsh
238-
239243
steps:
240244
- uses: actions/checkout@v4
241245
with:
@@ -304,16 +308,13 @@ jobs:
304308
path: ${{ github.workspace }}/BuildRoot/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr
305309

306310
cmark_gfm:
307-
# TODO: Build this on macOS or make an equivalent Mac-only job
308-
if: inputs.build_os == 'Windows'
309311
runs-on: ${{ inputs.default_build_runner }}
310312

311313
strategy:
312314
fail-fast: false
313-
matrix:
314-
arch: ['amd64', 'arm64']
315+
matrix: ${{ fromJSON(inputs.host_matrix) }}
315316

316-
name: Windows ${{ matrix.arch }} CMark GFM
317+
name: ${{ matrix.os }} ${{ matrix.arch }} CMark GFM
317318

318319
steps:
319320
- uses: actions/checkout@v4
@@ -325,13 +326,15 @@ jobs:
325326

326327
- uses: compnerd/gha-setup-vsdevenv@main
327328
with:
328-
host_arch: amd64
329+
host_arch: ${{ inputs.build_arch }}
329330
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
330331
arch: ${{ matrix.arch }}
331332

333+
- uses: seanmiddleditch/gha-setup-ninja@master
334+
if: inputs.build_os == 'Darwin'
335+
332336
- name: Compute workspace hash
333337
id: workspace_hash
334-
shell: pwsh
335338
run: |
336339
$stringAsStream = [System.IO.MemoryStream]::new()
337340
$writer = [System.IO.StreamWriter]::new($stringAsStream)
@@ -345,34 +348,36 @@ jobs:
345348
uses: hendrikmuhs/ccache-action@2e0e89e8d74340a03f75d58d02aae4c5ee1b15c6
346349
with:
347350
max-size: 1M
348-
key: ${{ steps.workspace_hash.outputs.hash }}-windows-${{ matrix.arch }}-cmark-gfm
351+
key: ${{ steps.workspace_hash.outputs.hash }}-${{ matrix.os }}-${{ matrix.arch }}-cmark-gfm
349352
variant: sccache
350353

351354
- name: Configure cmark-gfm
352355
run: >
353-
cmake -B ${{ github.workspace }}/BinaryCache/cmark-gfm-0.29.0.gfm.13 `
356+
cmake -B ${{ github.workspace }}/BinaryCache/cmark-gfm-${{ inputs.swift_cmark_version }} `
354357
-D BUILD_SHARED_LIBS=YES `
355358
-D BUILD_TESTING=NO `
356359
-D CMAKE_BUILD_TYPE=Release `
357-
-D CMAKE_C_COMPILER=cl `
360+
-D CMAKE_C_COMPILER=${{ matrix.cc }} `
358361
-D CMAKE_C_COMPILER_LAUNCHER=sccache `
359-
-D CMAKE_C_COMPILER_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" `
360-
-D CMAKE_CXX_COMPILER=cl `
362+
-D CMAKE_C_COMPILER_FLAGS="${{ matrix.cflags }}" `
363+
-D CMAKE_CXX_COMPILER=${{ matrix.cxx }} `
361364
-D CMAKE_CXX_COMPILER_LAUNCHER=sccache `
362-
-D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" `
365+
-D CMAKE_CXX_FLAGS="${{ matrix.cxxflags }}" `
363366
-D CMAKE_MT=mt `
364-
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr `
367+
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr `
365368
-D CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=YES `
369+
-D CMAKE_SYSTEM_NAME=${{ matrix.os }} `
370+
-D CMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} `
366371
-S ${{ github.workspace }}/SourceCache/cmark-gfm `
367372
-G Ninja
368373
- name: Build cmark-gfm
369-
run: cmake --build ${{ github.workspace }}/BinaryCache/cmark-gfm-0.29.0.gfm.13
374+
run: cmake --build ${{ github.workspace }}/BinaryCache/cmark-gfm-${{ inputs.swift_cmark_version }}
370375
- name: Install cmark-gfm
371-
run: cmake --build ${{ github.workspace }}/BinaryCache/cmark-gfm-0.29.0.gfm.13 --target install
376+
run: cmake --build ${{ github.workspace }}/BinaryCache/cmark-gfm-${{ inputs.swift_cmark_version }} --target install
372377
- uses: actions/upload-artifact@v4
373378
with:
374-
name: cmark-gfm-${{ matrix.arch }}-0.29.0.gfm.13
375-
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr
379+
name: cmark-gfm-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.swift_cmark_version }}
380+
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
376381

377382
build_tools:
378383
# TODO: Build this on macOS or make an equivalent Mac-only job
@@ -385,8 +390,8 @@ jobs:
385390
steps:
386391
- uses: actions/download-artifact@v4
387392
with:
388-
name: cmark-gfm-amd64-0.29.0.gfm.13
389-
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr
393+
name: cmark-gfm-Windows-amd64-${{ inputs.swift_cmark_version }}
394+
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
390395

391396
- uses: actions/checkout@v4
392397
with:
@@ -433,7 +438,7 @@ jobs:
433438
-D CMAKE_CXX_COMPILER_LAUNCHER=sccache `
434439
-D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" `
435440
-D CMAKE_MT=mt `
436-
-D cmark-gfm_DIR=${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr/lib/cmake `
441+
-D cmark-gfm_DIR=${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake `
437442
-G Ninja `
438443
-S ${{ github.workspace }}/SourceCache/llvm-project/llvm `
439444
-D LLVM_ENABLE_ASSERTIONS=NO `
@@ -523,8 +528,8 @@ jobs:
523528
path: ${{ github.workspace }}/BinaryCache/0/bin
524529
- uses: actions/download-artifact@v4
525530
with:
526-
name: cmark-gfm-${{ matrix.arch }}-0.29.0.gfm.13
527-
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr
531+
name: cmark-gfm-Windows-${{ matrix.arch }}-${{ inputs.swift_cmark_version }}
532+
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
528533

529534
- uses: actions/checkout@v4
530535
with:
@@ -685,7 +690,7 @@ jobs:
685690
-D SWIFT_PATH_TO_SWIFT_SDK="${SDKROOT}" `
686691
-D CLANG_VENDOR=compnerd.org `
687692
-D CLANG_VENDOR_UTI=org.compnerd.dt `
688-
-D cmark-gfm_DIR=${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr/lib/cmake `
693+
-D cmark-gfm_DIR=${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake `
689694
-D PACKAGE_VENDOR=compnerd.org `
690695
-D SWIFT_VENDOR=compnerd.org `
691696
-D LLVM_PARALLEL_LINK_JOBS=2 `
@@ -1380,11 +1385,11 @@ jobs:
13801385
path: ${{ github.workspace }}/BuildRoot/Library
13811386
- uses: actions/download-artifact@v4
13821387
with:
1383-
name: cmark-gfm-amd64-0.29.0.gfm.13
1384-
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr
1388+
name: cmark-gfm-Windows-amd64-${{ inputs.swift_cmark_version }}
1389+
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
13851390

13861391
- name: cmark-gfm Setup
1387-
run: Copy-Item ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr/bin/*.dll ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
1392+
run: Copy-Item ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/bin/*.dll ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
13881393

13891394
- uses: actions/checkout@v4
13901395
with:
@@ -1596,11 +1601,11 @@ jobs:
15961601
path: ${{ github.workspace }}/BinaryCache/swift/stdlib
15971602
- uses: actions/download-artifact@v4
15981603
with:
1599-
name: cmark-gfm-amd64-0.29.0.gfm.13
1600-
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr
1604+
name: cmark-gfm-Windows-amd64-${{ inputs.swift_cmark_version }}
1605+
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
16011606

16021607
- name: cmark-gfm Setup
1603-
run: Copy-Item ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr/bin/*.dll ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
1608+
run: Copy-Item ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/bin/*.dll ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
16041609

16051610
- uses: actions/checkout@v4
16061611
with:
@@ -1847,11 +1852,11 @@ jobs:
18471852
path: ${{ github.workspace }}/BinaryCache/Library
18481853
- uses: actions/download-artifact@v4
18491854
with:
1850-
name: cmark-gfm-amd64-0.29.0.gfm.13
1851-
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr
1855+
name: cmark-gfm-Windows-amd64-${{ inputs.swift_cmark_version }}
1856+
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
18521857

18531858
- name: cmark-gfm Setup
1854-
run: Copy-Item ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr/bin/*.dll ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
1859+
run: Copy-Item ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/bin/*.dll ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
18551860

18561861
- uses: actions/checkout@v4
18571862
with:
@@ -2247,17 +2252,17 @@ jobs:
22472252
path: ${{ github.workspace }}/BinaryCache/swift-syntax
22482253
- uses: actions/download-artifact@v4
22492254
with:
2250-
name: cmark-gfm-amd64-0.29.0.gfm.13
2251-
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr
2255+
name: cmark-gfm-Windows-amd64-${{ inputs.swift_cmark_version }}
2256+
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
22522257

22532258
- name: cmark-gfm Setup
2254-
run: Copy-Item ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr/bin/*.dll ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
2259+
run: Copy-Item ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/bin/*.dll ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
22552260

22562261
- uses: actions/download-artifact@v4
22572262
if: matrix.arch == 'arm64'
22582263
with:
2259-
name: cmark-gfm-arm64-0.29.0.gfm.13
2260-
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr
2264+
name: cmark-gfm-Windows-arm64-${{ inputs.swift_cmark_version }}
2265+
path: ${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
22612266

22622267
- uses: actions/checkout@v4
22632268
with:
@@ -2765,7 +2770,7 @@ jobs:
27652770
-G Ninja `
27662771
-S ${{ github.workspace }}/SourceCache/swift-markdown `
27672772
-D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules `
2768-
-D cmark-gfm_DIR=${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr/lib/cmake
2773+
-D cmark-gfm_DIR=${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake
27692774
- name: Build Markdown
27702775
run: cmake --build ${{ github.workspace }}/BinaryCache/swift-markdown
27712776

@@ -2792,7 +2797,7 @@ jobs:
27922797
-G Ninja `
27932798
-S ${{ github.workspace }}/SourceCache/swift-format `
27942799
-D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules `
2795-
-D cmark-gfm_DIR=${{ github.workspace }}/BinaryCache/Library/cmark-gfm-0.29.0.gfm.13/usr/lib/cmake `
2800+
-D cmark-gfm_DIR=${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake `
27962801
-D SwiftMarkdown_DIR=${{ github.workspace }}/BinaryCache/swift-markdown/cmake/modules `
27972802
-D SwiftSyntax_DIR=${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules
27982803
- name: Build swift-format
@@ -2960,17 +2965,17 @@ jobs:
29602965
path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Windows.platform
29612966
- uses: actions/download-artifact@v4
29622967
with:
2963-
name: cmark-gfm-amd64-0.29.0.gfm.13
2964-
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr
2968+
name: cmark-gfm-Windows-amd64-${{ inputs.swift_cmark_version }}
2969+
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
29652970

29662971
- name: cmark-gfm Setup
2967-
run: Copy-Item ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr/bin/*.dll ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
2972+
run: Copy-Item ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/bin/*.dll ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
29682973

29692974
- uses: actions/download-artifact@v4
29702975
if: matrix.arch == 'arm64'
29712976
with:
2972-
name: cmark-gfm-arm64-0.29.0.gfm.13
2973-
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr
2977+
name: cmark-gfm-Windows-arm64-${{ inputs.swift_cmark_version }}
2978+
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
29742979

29752980
- name: Update environment variables
29762981
run: |
@@ -3111,11 +3116,11 @@ jobs:
31113116
- name: Download cmark-gfm
31123117
uses: actions/download-artifact@v4
31133118
with:
3114-
name: cmark-gfm-${{ matrix.arch }}-0.29.0.gfm.13
3115-
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr
3119+
name: cmark-gfm-Windows-${{ matrix.arch }}-${{ inputs.swift_cmark_version }}
3120+
path: ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr
31163121

31173122
- name: cmark-gfm Setup
3118-
run: Copy-Item ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-0.29.0.gfm.13/usr/bin/*.dll ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
3123+
run: Copy-Item ${{ github.workspace }}/BuildRoot/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/bin/*.dll ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/
31193124

31203125
- uses: actions/checkout@v4
31213126
with:

0 commit comments

Comments
 (0)