Skip to content

Commit c186853

Browse files
Steelskincompnerd
authored andcommitted
[Mac Build] Build curl on Mac
* Turn the curl version into an input so it only needs to be set once.
1 parent a7d51e9 commit c186853

File tree

2 files changed

+25
-70
lines changed

2 files changed

+25
-70
lines changed

.github/workflows/build-toolchain.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ jobs:
9797
runs-on: ubuntu-latest
9898
outputs:
9999
curl_revision: ${{ steps.context.outputs.curl_revision }}
100+
curl_version: ${{ steps.context.outputs.curl_version }}
100101
ds2_revision: ${{ steps.context.outputs.ds2_revision }}
101102
indexstore_db_revision: ${{ steps.context.outputs.indexstore_db_revision }}
102103
libxml2_revision: ${{ steps.context.outputs.libxml2_revision }}
@@ -225,6 +226,7 @@ jobs:
225226
repo manifest -r --suppress-upstream-revision --suppress-dest-branch -o - | sed -E 's,[[:space:]]+$,,' > stable.xml
226227
fi
227228
229+
echo curl_version=8.9.1 >> ${GITHUB_OUTPUT}
228230
echo swift_toolchain_sqlite_version=3.46.0 >> ${GITHUB_OUTPUT}
229231
echo swift_cmark_version=0.29.0.gfm.13 >> ${GITHUB_OUTPUT}
230232
echo zlib_version=1.3 >> ${GITHUB_OUTPUT}
@@ -470,6 +472,7 @@ jobs:
470472
host_matrix: ${{ needs.context.outputs.windows_host_matrix }}
471473
target_matrix: ${{ needs.context.outputs.windows_target_matrix }}
472474
curl_revision: ${{ needs.context.outputs.curl_revision }}
475+
curl_version: ${{ needs.context.outputs.curl_version }}
473476
ds2_revision: ${{ needs.context.outputs.ds2_revision }}
474477
indexstore_db_revision: ${{ needs.context.outputs.indexstore_db_revision }}
475478
libxml2_revision: ${{ needs.context.outputs.libxml2_revision }}
@@ -540,6 +543,7 @@ jobs:
540543
host_matrix: ${{ needs.context.outputs.darwin_host_matrix }}
541544
target_matrix: ${{ needs.context.outputs.darwin_target_matrix }}
542545
curl_revision: ${{ needs.context.outputs.curl_revision }}
546+
curl_version: ${{ needs.context.outputs.curl_version }}
543547
ds2_revision: ${{ needs.context.outputs.ds2_revision }}
544548
indexstore_db_revision: ${{ needs.context.outputs.indexstore_db_revision }}
545549
libxml2_revision: ${{ needs.context.outputs.libxml2_revision }}

.github/workflows/swift-toolchain.yml

Lines changed: 21 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ on:
2727
required: true
2828
type: string
2929

30+
curl_version:
31+
required: true
32+
type: string
33+
3034
ds2_revision:
3135
required: true
3236
type: string
@@ -1045,70 +1049,12 @@ jobs:
10451049
path: ${{ github.workspace }}/BuildRoot/Library/zlib-${{ inputs.zlib_version }}/usr
10461050

10471051
curl:
1048-
# TODO: Build this on macOS or make an equivalent Mac-only job
1049-
if: inputs.build_os == 'Windows'
10501052
needs: [zlib]
10511053
runs-on: ${{ inputs.default_build_runner }}
10521054

10531055
strategy:
10541056
fail-fast: false
1055-
matrix:
1056-
include:
1057-
- arch: amd64
1058-
cc: cl
1059-
cflags: ${{ inputs.WINDOWS_CMAKE_C_FLAGS }}
1060-
cxx: cl
1061-
cxxflags: ${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}
1062-
os: Windows
1063-
extra_flags:
1064-
1065-
- arch: arm64
1066-
cc: cl
1067-
cflags: ${{ inputs.WINDOWS_CMAKE_C_FLAGS }}
1068-
cxx: cl
1069-
cxxflags: ${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}
1070-
os: Windows
1071-
extra_flags:
1072-
1073-
- arch: x86
1074-
cc: cl
1075-
cflags: ${{ inputs.WINDOWS_CMAKE_C_FLAGS }}
1076-
cxx: cl
1077-
cxxflags: ${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}
1078-
os: Windows
1079-
extra_flags:
1080-
1081-
- arch: arm64
1082-
cc: clang
1083-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1084-
cxx: clang++
1085-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1086-
os: Android
1087-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
1088-
1089-
- arch: armv7
1090-
cc: clang
1091-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1092-
cxx: clang++
1093-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1094-
os: Android
1095-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a
1096-
1097-
- arch: i686
1098-
cc: clang
1099-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1100-
cxx: clang++
1101-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1102-
os: Android
1103-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86
1104-
1105-
- arch: x86_64
1106-
cc: clang
1107-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1108-
cxx: clang++
1109-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1110-
os: Android
1111-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64
1057+
matrix: ${{ fromJSON(inputs.target_matrix) }}
11121058

11131059
name: ${{ matrix.os }} ${{ matrix.arch }} curl
11141060

@@ -1131,9 +1077,11 @@ jobs:
11311077
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
11321078
arch: ${{ matrix.arch }}
11331079

1080+
- uses: seanmiddleditch/gha-setup-ninja@master
1081+
if: inputs.build_os == 'Darwin'
1082+
11341083
- name: Compute workspace hash
11351084
id: workspace_hash
1136-
shell: pwsh
11371085
run: |
11381086
$stringAsStream = [System.IO.MemoryStream]::new()
11391087
$writer = [System.IO.StreamWriter]::new($stringAsStream)
@@ -1157,8 +1105,11 @@ jobs:
11571105

11581106
- name: Configure curl
11591107
run: |
1160-
$NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }}
1161-
cmake -B ${{ github.workspace }}/BinaryCache/curl-8.9.1 `
1108+
$NDKPATH = "${{ steps.setup-ndk.outputs.ndk-path }}"
1109+
if ( "${{ inputs.build_os }}" -eq "Windows" ) {
1110+
$NDKPATH = cygpath -m $NDKPATH
1111+
}
1112+
cmake -B ${{ github.workspace }}/BinaryCache/curl-${{ inputs.curl_version }} `
11621113
-D BUILD_SHARED_LIBS=NO `
11631114
-D CMAKE_BUILD_TYPE=Release `
11641115
-D CMAKE_C_COMPILER=${{ matrix.cc }} `
@@ -1168,7 +1119,7 @@ jobs:
11681119
-D CMAKE_CXX_COMPILER_LAUNCHER=sccache `
11691120
-D CMAKE_CXX_FLAGS="${{ matrix.cxxflags }}" `
11701121
-D CMAKE_MT=mt `
1171-
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/curl-8.9.1/usr `
1122+
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/curl-${{ inputs.curl_version }}/usr `
11721123
-D CMAKE_SYSTEM_NAME=${{ matrix.os }} `
11731124
${{ matrix.extra_flags }} `
11741125
-G Ninja `
@@ -1254,14 +1205,14 @@ jobs:
12541205
-D CMAKE_POSITION_INDEPENDENT_CODE=YES `
12551206
-D CMAKE_ANDROID_NDK=$NDKPATH
12561207
- name: Build curl
1257-
run: cmake --build ${{ github.workspace }}/BinaryCache/curl-8.9.1
1208+
run: cmake --build ${{ github.workspace }}/BinaryCache/curl-${{ inputs.curl_version }}
12581209
- name: Install curl
1259-
run: cmake --build ${{ github.workspace }}/BinaryCache/curl-8.9.1 --target install
1210+
run: cmake --build ${{ github.workspace }}/BinaryCache/curl-${{ inputs.curl_version }} --target install
12601211

12611212
- uses: actions/upload-artifact@v4
12621213
with:
1263-
name: curl-${{ matrix.os }}-${{ matrix.arch }}-8.9.1
1264-
path: ${{ github.workspace }}/BuildRoot/Library/curl-8.9.1/usr
1214+
name: curl-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.curl_version }}
1215+
path: ${{ github.workspace }}/BuildRoot/Library/curl-${{ inputs.curl_version }}/usr
12651216

12661217
libxml2:
12671218
# TODO: Build this on macOS or make an equivalent Mac-only job
@@ -1959,8 +1910,8 @@ jobs:
19591910
path: ${{ github.workspace }}/BuildRoot/Library/libxml2-2.11.5/usr
19601911
- uses: actions/download-artifact@v4
19611912
with:
1962-
name: curl-${{ matrix.os }}-${{ matrix.arch }}-8.9.1
1963-
path: ${{ github.workspace }}/BuildRoot/Library/curl-8.9.1/usr
1913+
name: curl-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.curl_version }}
1914+
path: ${{ github.workspace }}/BuildRoot/Library/curl-${{ inputs.curl_version }}/usr
19641915
- uses: actions/download-artifact@v4
19651916
with:
19661917
name: zlib-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.zlib_version }}
@@ -2176,7 +2127,7 @@ jobs:
21762127
-G Ninja `
21772128
-S ${{ github.workspace }}/SourceCache/swift-corelibs-foundation `
21782129
-D dispatch_DIR=${{ github.workspace }}/BinaryCache/libdispatch/cmake/modules `
2179-
-D CURL_DIR=${{ github.workspace }}/BuildRoot/Library/curl-8.9.1/usr/lib/cmake/CURL `
2130+
-D CURL_DIR=${{ github.workspace }}/BuildRoot/Library/curl-${{ inputs.curl_version }}/usr/lib/cmake/CURL `
21802131
-D FOUNDATION_BUILD_TOOLS=${build_tools} `
21812132
-D Foundation_MACRO=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin `
21822133
-D ENABLE_TESTING=NO `

0 commit comments

Comments
 (0)