Skip to content

Build SKIA Graphite #20

Build SKIA Graphite

Build SKIA Graphite #20

name: Build SKIA Graphite
on: workflow_dispatch
jobs:
build:
runs-on: macos-latest-xlarge
strategy:
matrix:
include:
- target: "apple"
artifact_name: "skia-graphite-apple-xcframeworks"
artifact_path: "./packages/skia/libs/apple/*.xcframework"
- target: "android-arm"
artifact_name: "skia-graphite-android-arm"
artifact_path: |
./externals/skia/out/android/arm/libskia.a
./externals/skia/out/android/arm/libskshaper.a
./externals/skia/out/android/arm/libsvg.a
./externals/skia/out/android/arm/libskottie.a
./externals/skia/out/android/arm/libsksg.a
./externals/skia/out/android/arm/libskparagraph.a
./externals/skia/out/android/arm/libskunicode_core.a
./externals/skia/out/android/arm/libskunicode_icu.a
./externals/skia/out/android/arm/libjsonreader.a
- target: "android-arm64"
artifact_name: "skia-graphite-android-arm-64"
artifact_path: |
./externals/skia/out/android/arm64/libskia.a
./externals/skia/out/android/arm64/libskshaper.a
./externals/skia/out/android/arm64/libsvg.a
./externals/skia/out/android/arm64/libskottie.a
./externals/skia/out/android/arm64/libsksg.a
./externals/skia/out/android/arm64/libskparagraph.a
./externals/skia/out/android/arm64/libskunicode_core.a
./externals/skia/out/android/arm64/libskunicode_icu.a
./externals/skia/out/android/arm64/libjsonreader.a
- target: "android-x86"
artifact_name: "skia-graphite-android-arm-x86"
artifact_path: |
./externals/skia/out/android/x86/libskia.a
./externals/skia/out/android/x86/libskshaper.a
./externals/skia/out/android/x86/libsvg.a
./externals/skia/out/android/x86/libskottie.a
./externals/skia/out/android/x86/libsksg.a
./externals/skia/out/android/x86/libskparagraph.a
./externals/skia/out/android/x86/libskunicode_core.a
./externals/skia/out/android/x86/libskunicode_icu.a
./externals/skia/out/android/x86/libjsonreader.a
- target: "android-x64"
artifact_name: "skia-graphite-android-arm-x64"
artifact_path: |
./externals/skia/out/android/x64/libskia.a
./externals/skia/out/android/x64/libskshaper.a
./externals/skia/out/android/x64/libsvg.a
./externals/skia/out/android/x64/libskottie.a
./externals/skia/out/android/x64/libsksg.a
./externals/skia/out/android/x64/libskparagraph.a
./externals/skia/out/android/x64/libskunicode_core.a
./externals/skia/out/android/x64/libskunicode_icu.a
./externals/skia/out/android/x64/libjsonreader.a
fail-fast: false
steps:
- name: checkout
uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v5.0.0
with:
submodules: recursive
- name: Setup Android NDK
id: setup-ndk
if: startsWith(matrix.target, 'android')
uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
with:
ndk-version: r27d
- name: Set ANDROID_NDK
if: startsWith(matrix.target, 'android')
run: echo "ANDROID_NDK=$ANDROID_HOME/ndk-bundle" >> $GITHUB_ENV
- name: Setup Ninja
uses: seanmiddleditch/gha-setup-ninja@master
- name: Setup
uses: ./.github/actions/setup
with:
download_skia: 'false'
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Update depot_tools
working-directory: ./externals/depot_tools
run: ./update_depot_tools
- name: Apply Dawn patch
run: |
DAWN_GNI_FILE="./externals/skia/build_overrides/dawn.gni"
if [ -f "$DAWN_GNI_FILE" ]; then
echo "Applying patch to dawn.gni..."
# Remove the specified lines from the end of the file
sed -i.bak '/# PartitionAlloc is an optional dependency:/,$d' "$DAWN_GNI_FILE"
echo "Patch applied successfully."
echo "Modified dawn.gni content:"
cat "$DAWN_GNI_FILE"
else
echo "Warning: dawn.gni file not found at $DAWN_GNI_FILE"
fi
- name: Build Skia with Graphite - ${{ matrix.target }}
working-directory: ./packages/skia
env:
ANDROID_NDK: ${{ steps.setup-ndk.outputs.ndk-path }}
GIT_SYNC_DEPS_SKIP_EMSDK: 'true'
ZERO_AR_DATE: 1
SK_GRAPHITE: 1
run: yarn build-skia ${{ matrix.target }}
- name: Upload artifacts - ${{ matrix.artifact_name }}
if: github.ref == 'refs/heads/main'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ matrix.artifact_name }}
path: ${{ matrix.artifact_path }}
- name: Upload artifacts - Graphite Headers
if: github.ref == 'refs/heads/main' && matrix.target == 'apple'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: skia-graphite-headers
path: |
./packages/skia/cpp/dawn/include/
./packages/skia/cpp/skia/src/gpu/graphite/