Skip to content

Commit fa5a84d

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

File tree

2 files changed

+26
-70
lines changed

2 files changed

+26
-70
lines changed

.github/workflows/build-toolchain.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ jobs:
101101
ds2_revision: ${{ steps.context.outputs.ds2_revision }}
102102
indexstore_db_revision: ${{ steps.context.outputs.indexstore_db_revision }}
103103
libxml2_revision: ${{ steps.context.outputs.libxml2_revision }}
104+
libxml2_version: ${{ steps.context.outputs.libxml2_version }}
104105
llvm_project_revision: ${{ steps.context.outputs.llvm_project_revision }}
105106
sourcekit_lsp_revision: ${{ steps.context.outputs.sourcekit_lsp_revision }}
106107
swift_argument_parser_revision: ${{ steps.context.outputs.swift_argument_parser_revision }}
@@ -226,6 +227,7 @@ jobs:
226227
repo manifest -r --suppress-upstream-revision --suppress-dest-branch -o - | sed -E 's,[[:space:]]+$,,' > stable.xml
227228
fi
228229
230+
echo libxml2_version=2.11.5 >> ${GITHUB_OUTPUT}
229231
echo curl_version=8.9.1 >> ${GITHUB_OUTPUT}
230232
echo swift_toolchain_sqlite_version=3.46.0 >> ${GITHUB_OUTPUT}
231233
echo swift_cmark_version=0.29.0.gfm.13 >> ${GITHUB_OUTPUT}
@@ -476,6 +478,7 @@ jobs:
476478
ds2_revision: ${{ needs.context.outputs.ds2_revision }}
477479
indexstore_db_revision: ${{ needs.context.outputs.indexstore_db_revision }}
478480
libxml2_revision: ${{ needs.context.outputs.libxml2_revision }}
481+
libxml2_version: ${{ needs.context.outputs.libxml2_version }}
479482
llvm_project_revision: ${{ needs.context.outputs.llvm_project_revision }}
480483
sourcekit_lsp_revision: ${{ needs.context.outputs.sourcekit_lsp_revision }}
481484
swift_argument_parser_revision: ${{ needs.context.outputs.swift_argument_parser_revision }}
@@ -547,6 +550,7 @@ jobs:
547550
ds2_revision: ${{ needs.context.outputs.ds2_revision }}
548551
indexstore_db_revision: ${{ needs.context.outputs.indexstore_db_revision }}
549552
libxml2_revision: ${{ needs.context.outputs.libxml2_revision }}
553+
libxml2_version: ${{ needs.context.outputs.libxml2_version }}
550554
llvm_project_revision: ${{ needs.context.outputs.llvm_project_revision }}
551555
sourcekit_lsp_revision: ${{ needs.context.outputs.sourcekit_lsp_revision }}
552556
swift_argument_parser_revision: ${{ needs.context.outputs.swift_argument_parser_revision }}

.github/workflows/swift-toolchain.yml

Lines changed: 22 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ on:
4343
required: true
4444
type: string
4545

46+
libxml2_version:
47+
required: true
48+
type: string
49+
4650
llvm_project_revision:
4751
required: true
4852
type: string
@@ -1215,69 +1219,11 @@ jobs:
12151219
path: ${{ github.workspace }}/BuildRoot/Library/curl-${{ inputs.curl_version }}/usr
12161220

12171221
libxml2:
1218-
# TODO: Build this on macOS or make an equivalent Mac-only job
1219-
if: inputs.build_os == 'Windows'
12201222
runs-on: ${{ inputs.default_build_runner }}
12211223

12221224
strategy:
12231225
fail-fast: false
1224-
matrix:
1225-
include:
1226-
- arch: amd64
1227-
cc: cl
1228-
cflags: ${{ inputs.WINDOWS_CMAKE_C_FLAGS }}
1229-
cxx: cl
1230-
cxxflags: ${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}
1231-
os: Windows
1232-
extra_flags:
1233-
1234-
- arch: arm64
1235-
cc: cl
1236-
cflags: ${{ inputs.WINDOWS_CMAKE_C_FLAGS }}
1237-
cxx: cl
1238-
cxxflags: ${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}
1239-
os: Windows
1240-
extra_flags:
1241-
1242-
- arch: x86
1243-
cc: cl
1244-
cflags: ${{ inputs.WINDOWS_CMAKE_C_FLAGS }}
1245-
cxx: cl
1246-
cxxflags: ${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}
1247-
os: Windows
1248-
extra_flags:
1249-
1250-
- arch: arm64
1251-
cc: clang
1252-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1253-
cxx: clang++
1254-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1255-
os: Android
1256-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
1257-
1258-
- arch: armv7
1259-
cc: clang
1260-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1261-
cxx: clang++
1262-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1263-
os: Android
1264-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a
1265-
1266-
- arch: i686
1267-
cc: clang
1268-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1269-
cxx: clang++
1270-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1271-
os: Android
1272-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86
1273-
1274-
- arch: x86_64
1275-
cc: clang
1276-
cflags: ${{ inputs.ANDROID_CMAKE_C_FLAGS }}
1277-
cxx: clang++
1278-
cxxflags: ${{ inputs.ANDROID_CMAKE_CXX_FLAGS }}
1279-
os: Android
1280-
extra_flags: -DCMAKE_ANDROID_API=${{ inputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64
1226+
matrix: ${{ fromJSON(inputs.target_matrix) }}
12811227

12821228
name: ${{ matrix.os }} ${{ matrix.arch }} libxml2
12831229

@@ -1295,6 +1241,9 @@ jobs:
12951241
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
12961242
arch: ${{ matrix.arch }}
12971243

1244+
- uses: seanmiddleditch/gha-setup-ninja@master
1245+
if: inputs.build_os == 'Darwin'
1246+
12981247
- name: Compute workspace hash
12991248
id: workspace_hash
13001249
shell: pwsh
@@ -1321,8 +1270,11 @@ jobs:
13211270

13221271
- name: Configure libxml2
13231272
run: |
1324-
$NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }}
1325-
cmake -B ${{ github.workspace }}/BinaryCache/libxml2-2.11.5 `
1273+
$NDKPATH = "${{ steps.setup-ndk.outputs.ndk-path }}"
1274+
if ( "${{ inputs.build_os }}" -eq "Windows" ) {
1275+
$NDKPATH = cygpath -m $NDKPATH
1276+
}
1277+
cmake -B ${{ github.workspace }}/BinaryCache/libxml2-${{ inputs.libxml2_version }} `
13261278
-D BUILD_SHARED_LIBS=NO `
13271279
-D CMAKE_BUILD_TYPE=Release `
13281280
-D CMAKE_C_COMPILER=${{ matrix.cc }} `
@@ -1332,7 +1284,7 @@ jobs:
13321284
-D CMAKE_CXX_COMPILER_LAUNCHER=sccache `
13331285
-D CMAKE_CXX_FLAGS="${{ matrix.cxxflags }}" `
13341286
-D CMAKE_MT=mt `
1335-
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/libxml2-2.11.5/usr `
1287+
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/libxml2-${{ inputs.libxml2_version }}/usr `
13361288
-D CMAKE_SYSTEM_NAME=${{ matrix.os }} `
13371289
${{ matrix.extra_flags }} `
13381290
-G Ninja `
@@ -1347,14 +1299,14 @@ jobs:
13471299
-D CMAKE_POSITION_INDEPENDENT_CODE=YES `
13481300
-D CMAKE_ANDROID_NDK=$NDKPATH
13491301
- name: Build libxml2
1350-
run: cmake --build ${{ github.workspace }}/BinaryCache/libxml2-2.11.5
1302+
run: cmake --build ${{ github.workspace }}/BinaryCache/libxml2-${{ inputs.libxml2_version }}
13511303
- name: Install libxml2
1352-
run: cmake --build ${{ github.workspace }}/BinaryCache/libxml2-2.11.5 --target install
1304+
run: cmake --build ${{ github.workspace }}/BinaryCache/libxml2-${{ inputs.libxml2_version }} --target install
13531305

13541306
- uses: actions/upload-artifact@v4
13551307
with:
1356-
name: libxml2-${{ matrix.os }}-${{ matrix.arch }}-2.11.5
1357-
path: ${{ github.workspace }}/BuildRoot/Library/libxml2-2.11.5/usr
1308+
name: libxml2-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.libxml2_version }}
1309+
path: ${{ github.workspace }}/BuildRoot/Library/libxml2-${{ inputs.libxml2_version }}/usr
13581310

13591311
stdlib:
13601312
# TODO: Build this on macOS or make an equivalent Mac-only job
@@ -1906,8 +1858,8 @@ jobs:
19061858
steps:
19071859
- uses: actions/download-artifact@v4
19081860
with:
1909-
name: libxml2-${{ matrix.os }}-${{ matrix.arch }}-2.11.5
1910-
path: ${{ github.workspace }}/BuildRoot/Library/libxml2-2.11.5/usr
1861+
name: libxml2-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.libxml2_version }}
1862+
path: ${{ github.workspace }}/BuildRoot/Library/libxml2-${{ inputs.libxml2_version }}/usr
19111863
- uses: actions/download-artifact@v4
19121864
with:
19131865
name: curl-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.curl_version }}
@@ -2135,8 +2087,8 @@ jobs:
21352087
-D _SwiftFoundationICU_SourceDIR=$SWIFT_FOUNDATION_ICU_SOURCE_DIR `
21362088
-D _SwiftCollections_SourceDIR=$SWIFT_COLLECTIONS_SOURCE_DIR `
21372089
-D LIBXML2_DEFINITIONS="${DEFINITION_FLAG}LIBXML_STATIC" `
2138-
-D LIBXML2_INCLUDE_DIR=${{ github.workspace }}/BuildRoot/Library/libxml2-2.11.5/usr/include/libxml2 `
2139-
-D LIBXML2_LIBRARY=${{ github.workspace }}/BuildRoot/Library/libxml2-2.11.5/usr/lib/$LIBXML `
2090+
-D LIBXML2_INCLUDE_DIR=${{ github.workspace }}/BuildRoot/Library/libxml2-${{ inputs.libxml2_version }}/usr/include/libxml2 `
2091+
-D LIBXML2_LIBRARY=${{ github.workspace }}/BuildRoot/Library/libxml2-${{ inputs.libxml2_version }}/usr/lib/$LIBXML `
21402092
-D ZLIB_ROOT=${{ github.workspace }}/BuildRoot/Library/zlib-${{ inputs.zlib_version }}/usr `
21412093
-D ZLIB_LIBRARY=${{ github.workspace }}/BuildRoot/Library/zlib-${{ inputs.zlib_version }}/usr/lib/$LIBZ `
21422094
-D SwiftFoundation_MACRO=${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin

0 commit comments

Comments
 (0)