Skip to content

๐Ÿ—๏ธ Build Bindings #108

๐Ÿ—๏ธ Build Bindings

๐Ÿ—๏ธ Build Bindings #108

Workflow file for this run

on:
push:
workflow_dispatch:
inputs:
ref:
type: string
default: master
description: The ref of saucer to use
cmake:
type: string
# This default value shows off how to inline the desktop and loop module to produce a single shared library that contains all commonly required functionality
default: -Dsaucer_bindings_static=ON -Dsaucer_bindings_modules="desktop;loop" -Dsaucer_bindings_inline_modules="desktop;loop"
description: Additional CMake Arguments to pass
name: ๐Ÿ—๏ธ Build Bindings
jobs:
build:
strategy:
fail-fast: false
matrix:
backend: [WebKit, WebKit-Universal, WebKitGtk, WebView2, WebView2-Hack, Qt]
config: [Debug, Release, RelWithDebInfo, MinSizeRel]
include:
- backend: WebView2
platform: Windows
os: windows-latest
- backend: WebView2-Hack
backend-override: WebView2
platform: Windows
os: windows-latest
cmake-args: -Dsaucer_msvc_hack=ON
- backend: Qt
platform: Linux
os: ubuntu-latest
container: archlinux:base-devel
- backend: WebKitGtk
platform: Linux
os: ubuntu-latest
container: archlinux:base-devel
- backend: WebKit
platform: MacOS
os: macos-latest
- backend: WebKit-Universal
backend-override: WebKit
platform: MacOS
os: macos-latest
cmake-args: -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}
name: "${{ matrix.config}}: ${{ matrix.backend }}"
steps:
- name: ๐Ÿ“ฅ Checkout
uses: actions/checkout@v4
- name: ๐Ÿ›ธ Setup Bindings
uses: ./.github/actions/setup
with:
backend: ${{ matrix.backend-override || matrix.backend }}
platform: ${{ matrix.platform }}
build-type: ${{ matrix.config }}
cmake-args: >
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY="$(pwd)/bin"
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY="$(pwd)/bin"
${{ matrix.cmake-args }}
${{ github.event.inputs.cmake }}
- name: ๐Ÿ“ฆ Upload Artifact
uses: actions/upload-artifact@v4
with:
name: "${{ matrix.config }}-${{ matrix.backend }}"
path: bin