Skip to content

Commit

Permalink
A bunch of improvements to native library builds (#2049)
Browse files Browse the repository at this point in the history
* Native: Add CMake toolchain files for Linux cross-compilation.

These will mainly be used in CI workflows, so they're specific to Ubuntu 18.04 and 22.04.

* Native/Assimp: Build for linux-arm, linux-arm64, and win-arm64.

Also clean up the build script.

* Native/Assimp: Don't build tests.

* Native/Assimp: Strip Linux/macOS binaries after build.

* Native/GLFW: Build for linux-arm and linux-arm64.

Also clean up the build script.

* Native/GLFW: Don't build examples, tests, and docs.

* Native/GLFW: Strip Linux/macOS binaries after build.

* Native/OpenAL Soft: Add submodule tracking 1.23.1.

* Native/OpenAL Soft: Add build script and workflow.

* Native/SDL: Build for linux-arm and linux-arm64.

Also clean up the Linux/Windows build script logic.

* Native/SDL: Drop linux-x86 support.

This has never been officially supported by .NET.

* Native/SDL: Build with dynamically-loaded Wayland and X11 support.

* Native/SDL: Disable assertions when building on Windows/Linux.

* Native/SDL: Don't build static libraries on Linux.

* Native/SDL: Strip macOS binaries after build.

* Native/Shaderc: Build for linux-arm.

* Native/Shaderc: Drop linux-x86 support.

This has never been officially supported by .NET.

* Native/Shaderc: Build with -O3 instead of -Os.

* Native/SPIRV-Cross: Build for linux-arm.

* Native/SPIRV-Cross: Drop linux-x86 support.

This has never been officially supported by .NET.

* Native/SPIRV-Cross: Build with -O3 instead of -Os.

* Native/SPIRV-Reflect: Build for linux-arm.

* Native/SPIRV-Reflect: Drop linux-x86 support.

This has never been officially supported by .NET.

* Native/SPIRV-Reflect: Build with -O3 instead of -Os.

* Native/SwiftShader: Build for linux-arm, linux-arm64, osx-arm64, and win-x86.

Also clean up the build script.

* Native/SwiftShader: Don't build tests.

* Native/SwiftShader: Strip Linux/macOS binaries after build.

* Native/Vkd3d: Build with -O3 instead of -Os.

* Native/Vulkan Loader: Build for linux-arm64, osx-arm64, and win-x86.

Also clean up the build script.

* Native/Vulkan Loader: Strip Linux/macOS binaries after build.

* Native/wgpu-native: Build for linux-arm and linux-arm64.

Also clean up the build script to be table-driven.

* Native/wgpu-native: Drop linux-x86 support.

This has never been officially supported by .NET.

* New binaries for GLFW on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for Vulkan Loader on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for Wgpu on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for GLFW on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for SPIRV-Reflect on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for GLFW on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for Vulkan Loader on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for GLFW on Microsoft Windows 10.0.20348

* New binaries for Wgpu on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for SDL2 on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for Assimp on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for SDL2 on Microsoft Windows 10.0.20348

* New binaries for GLFW on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for GLFW on Microsoft Windows 10.0.20348

* New binaries for SDL2 on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for Wgpu on Microsoft Windows 10.0.20348

* New binaries for SPIRV-Cross on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for Assimp on Microsoft Windows 10.0.20348

* New binaries for Vkd3d on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for MoltenVK on Darwin 22.6.0 Darwin Kernel Version 22.6.0: Mon Feb 19 19:42:47 PST 2024; root:xnu-8796.141.3.704.6~1/RELEASE_ARM64_VMAPPLE

* New binaries for Vulkan Loader on Microsoft Windows 10.0.20348

* New binaries for Assimp on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for DXVK on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for SwiftShader on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for SwiftShader on Microsoft Windows 10.0.20348

* New binaries for Shaderc on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for SwiftShader on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* Native/GLFW: Fix incorrect library file name in package.

* New binaries for GLFW on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for GLFW on Microsoft Windows 10.0.20348

* Native/OpenAL Soft: Explicitly disable sndio support.

The sndio backend takes a hard dependency on libsndio.so, unlike most other
backends which load libraries dynamically. We don't want our libopenal.so to
require users to install sndio.

* Native/OpenAL Soft: Ensure that D-Bus libraries are installed in CI.

This allows the build to pick them up and enable support.

* Native/OpenAL Soft: Fix library/PR name.

* Native/OpenAL Soft: Only install JACK for amd64 in the workflow.

This package is not multiarch-compatible in 22.04, so prioritize amd64.

* Native/SDL: Only install JACK for amd64 in the workflow.

This package is not multiarch-compatible in 22.04, so prioritize amd64.

* New binaries for SDL2 on Darwin 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:50 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_VMAPPLE

* New binaries for SDL2 on Microsoft Windows 10.0.20348

* New binaries for OpenALSoft on Microsoft Windows 10.0.20348

* New binaries for SDL2 on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* New binaries for OpenALSoft on Linux 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 04:50:38 UTC 2024

* Native/Workflows: Add comments explaining APT sources.

---------

Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com>
  • Loading branch information
alexrp and dotnet-bot committed Apr 18, 2024
1 parent 9c42984 commit aea6c51
Show file tree
Hide file tree
Showing 133 changed files with 811 additions and 380 deletions.
32 changes: 26 additions & 6 deletions .github/workflows/assimp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,37 @@ jobs:
fail-fast: false
matrix:
env:
- os: ubuntu-latest
- os: ubuntu-22.04
name: Linux
nuke_invoke: ./build.sh
extras: |
sudo apt-get update
sudo apt-get install -y xorg-dev
- os: windows-latest
# We need to adjust APT sources for multiarch. Use the ones corresponding to
# Ubuntu 22.04 with appropriate `arch` values. ports.ubuntu.com is required
# for armhf and arm64.
sudo tee /etc/apt/sources.list << EOF
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy main universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-backports main universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-security main universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-updates main universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy main universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-backports main universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-security main universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-updates main universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy main universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-backports main universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-security main universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-updates main universe
EOF
sudo dpkg --add-architecture arm64
sudo dpkg --add-architecture armhf
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
sudo apt install -y g++-aarch64-linux-gnu g++-arm-linux-gnueabihf
- os: windows-2022
name: Windows
nuke_invoke: ./build.cmd
extras: ""
- os: macos-latest
- os: macos-14
name: Darwin
nuke_invoke: ./build.sh
extras: ""
Expand All @@ -41,7 +61,7 @@ jobs:
run: |
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive --depth 0 build/submodules/Assimp
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com"
git config --local user.name "The Silk.NET Automaton"
git config --local user.name "The Silk.NET Automaton"
- name: Extra prerequisites
run: |
echo running extras
Expand Down
36 changes: 30 additions & 6 deletions .github/workflows/glfw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,41 @@ jobs:
fail-fast: false
matrix:
env:
- os: ubuntu-latest
- os: ubuntu-22.04
name: Linux
nuke_invoke: ./build.sh
extras: |
sudo apt-get update
sudo apt-get install -y xorg-dev libwayland-dev libxkbcommon-dev
- os: windows-latest
# We need to adjust APT sources for multiarch. Use the ones corresponding to
# Ubuntu 22.04 with appropriate `arch` values. ports.ubuntu.com is required
# for armhf and arm64.
sudo tee /etc/apt/sources.list << EOF
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-security main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-backports main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-security main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-updates main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-security main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe
EOF
sudo dpkg --add-architecture arm64
sudo dpkg --add-architecture armhf
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
sudo apt install -y extra-cmake-modules pkg-config wayland-protocols
for arch in amd64 arm64 armhf; do
sudo apt install -y libwayland-dev:$arch libxcursor-dev:$arch libxi-dev:$arch
sudo apt install -y libxinerama-dev:$arch libxrandr-dev:$arch libxkbcommon-dev:$arch
done
- os: windows-2022
name: Windows
nuke_invoke: ./build.cmd
extras: ""
- os: macos-latest
- os: macos-14
name: Darwin
nuke_invoke: ./build.sh
extras: ""
Expand All @@ -41,7 +65,7 @@ jobs:
run: |
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive --depth 0 build/submodules/GLFW
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com"
git config --local user.name "The Silk.NET Automaton"
git config --local user.name "The Silk.NET Automaton"
- name: Extra prerequisites
run: |
echo running extras
Expand Down
86 changes: 86 additions & 0 deletions .github/workflows/openal-soft.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: OpenAL Soft
on:
push:
branches-ignore:
- "ci/**"
- "develop/**"
- "main"
paths:
- build/submodules/openal-soft
- build/nuke/Native/Core.cs
- build/nuke/Native/OpenALSoft.cs
- .github/workflows/openal-soft.yml
jobs:
Build:
if: github.repository == 'dotnet/Silk.NET'
strategy:
fail-fast: false
matrix:
env:
- os: ubuntu-22.04
name: Linux
nuke_invoke: ./build.sh
extras: |
# We need to adjust APT sources for multiarch. Use the ones corresponding to
# Ubuntu 22.04 with appropriate `arch` values. ports.ubuntu.com is required
# for armhf and arm64.
sudo tee /etc/apt/sources.list << EOF
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-security main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-backports main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-security main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-updates main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-security main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe
EOF
sudo dpkg --add-architecture arm64
sudo dpkg --add-architecture armhf
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
sudo apt install -y g++-aarch64-linux-gnu g++-arm-linux-gnueabihf
for arch in amd64 arm64 armhf; do
sudo apt install -y libasound2-dev:$arch libpulse-dev:$arch libsoundio-dev:$arch
sudo apt install -y libsndfile1-dev:$arch libmysofa-dev:$arch qtbase5-dev:$arch
sudo apt install -y libdbus-1-dev:$arch
done
# These packages aren't multiarch-compatible in 22.04, so we prioritize amd64 for these.
sudo apt install -y libjack-dev portaudio19-dev
- os: windows-2022
name: Windows
nuke_invoke: ./build.cmd
extras: ""
- os: macos-14
name: Darwin
nuke_invoke: ./build.sh
extras: ""
name: ${{ matrix.env.name }} Build
runs-on: ${{ matrix.env.os }}
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}
- name: Checkout submodules, configure git.
run: |
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive --depth 0 build/submodules/openal-soft
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com"
git config --local user.name "The Silk.NET Automaton"
- name: Extra prerequisites
run: |
echo running extras
${{ matrix.env.extras }}
- name: Setup .NET 6.0 and .NET 7.0
uses: actions/setup-dotnet@v1
with:
dotnet-version: |
6.0.201
7.0.*
- name: Build OpenAL Soft
run: ${{ matrix.env.nuke_invoke }} openalsoft
env:
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}

42 changes: 37 additions & 5 deletions .github/workflows/sdl2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ jobs:
fail-fast: false
matrix:
env:
- os: ubuntu-latest
- os: ubuntu-22.04
name: Linux
nuke_invoke: ./build.sh
- os: windows-latest
- os: windows-2022
name: Windows
nuke_invoke: ./build.cmd
extras: |
pwsh build\Install-WindowsSDK.ps1
- os: macos-latest
- os: macos-14
name: Darwin
nuke_invoke: ./build.sh
extras: ""
Expand Down Expand Up @@ -56,8 +56,39 @@ jobs:
uses: Beyley/run-as-1804@239b211a2ca687388b6251d6dab22cb90ac0391d
with:
command: |
# We need to adjust APT sources for multiarch. Use the ones corresponding to
# Ubuntu 18.04 with appropriate `arch` values. ports.ubuntu.com is required
# for armhf and arm64.
tee /etc/apt/sources.list << EOF
deb [arch=amd64] http://archive.ubuntu.com/ubuntu bionic main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu bionic-backports main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu bionic-security main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu bionic-updates main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com bionic main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com bionic-backports main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com bionic-security main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com bionic-updates main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu bionic main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu bionic-backports main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu bionic-security main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu bionic-updates main multiverse restricted universe
EOF
dpkg --add-architecture arm64
dpkg --add-architecture armhf
apt update
apt install -y python3 curl wget build-essential git make autoconf gcc-multilib g++-multilib automake libtool pkg-config ninja-build gnome-desktop-testing libasound2-dev libpulse-dev libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev
apt install -y gcc gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
apt install -y g++ g++-aarch64-linux-gnu g++-arm-linux-gnueabihf
apt install -y automake build-essential curl git libtool pkg-config python3 wget
for arch in amd64 arm64 armhf; do
apt install -y libasound2-dev:$arch libpulse-dev:$arch libaudio-dev:$arch
apt install -y libsndio-dev:$arch libsamplerate0-dev:$arch libx11-dev:$arch libxext-dev:$arch
apt install -y libxrandr-dev:$arch libxcursor-dev:$arch libxfixes-dev:$arch libxi-dev:$arch
apt install -y libxss-dev:$arch libwayland-dev:$arch libxkbcommon-dev:$arch libdrm-dev:$arch
apt install -y libgbm-dev:$arch libgl1-mesa-dev:$arch libgles2-mesa-dev:$arch libegl1-mesa-dev:$arch
apt install -y libdbus-1-dev:$arch libibus-1.0-dev:$arch libudev-dev:$arch
done
# This package isn't multiarch-compatible in 22.04, so we prioritize amd64 for this.
apt install -y libjack-dev
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x ./dotnet-install.sh
Expand All @@ -72,6 +103,7 @@ jobs:
# mark workspace as safe
git config --global --add safe.directory /github/workspace
git config --global --add safe.directory /github/workspace/build/submodules/SDL
${{ matrix.env.nuke_invoke }} SDL2
env:
Expand All @@ -82,5 +114,5 @@ jobs:
run: ${{ matrix.env.nuke_invoke }} SDL2
env:
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}


3 changes: 0 additions & 3 deletions .github/workflows/shaderc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ jobs:
- os: ubuntu-latest
name: Linux
nuke_invoke: ./build.sh
extras: |
sudo apt-get update
sudo apt-get install -y build-essential binutils-aarch64-linux-gnu
name: ${{ matrix.env.name }} Build
runs-on: ${{ matrix.env.os }}
steps:
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/spirv-cross.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ jobs:
- os: ubuntu-latest
name: Linux
nuke_invoke: ./build.sh
extras: |
sudo apt-get update
sudo apt-get install -y build-essential
name: ${{ matrix.env.name }} Build
runs-on: ${{ matrix.env.os }}
steps:
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/spirv-reflect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ jobs:
- os: ubuntu-latest
name: Linux
nuke_invoke: ./build.sh
extras: |
sudo apt-get update
sudo apt-get install -y build-essential
name: ${{ matrix.env.name }} Build
runs-on: ${{ matrix.env.os }}
steps:
Expand Down
35 changes: 29 additions & 6 deletions .github/workflows/swiftshader.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,40 @@ jobs:
fail-fast: false
matrix:
env:
- os: ubuntu-latest
- os: ubuntu-22.04
name: Linux
nuke_invoke: ./build.sh
extras: |
sudo apt-get update
sudo apt-get install -y libx11-xcb-dev
- os: windows-latest
# We need to adjust APT sources for multiarch. Use the ones corresponding to
# Ubuntu 22.04 with appropriate `arch` values. ports.ubuntu.com is required
# for armhf and arm64.
sudo tee /etc/apt/sources.list << EOF
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-security main multiverse restricted universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-backports main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-security main multiverse restricted universe
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-updates main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-security main multiverse restricted universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe
EOF
sudo dpkg --add-architecture arm64
sudo dpkg --add-architecture armhf
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf
sudo apt install -y g++-aarch64-linux-gnu g++-arm-linux-gnueabihf
for arch in amd64 arm64 armhf; do
sudo apt install -y libx11-xcb-dev:$arch
done
- os: windows-2022
name: Windows
nuke_invoke: ./build.cmd
extras: ""
- os: macos-latest
- os: macos-14
name: Darwin
nuke_invoke: ./build.sh
extras: ""
Expand All @@ -41,7 +64,7 @@ jobs:
run: |
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive --depth 0 build/submodules/SwiftShader
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com"
git config --local user.name "The Silk.NET Automaton"
git config --local user.name "The Silk.NET Automaton"
- name: Extra prerequisites
run: |
echo running extras
Expand Down

0 comments on commit aea6c51

Please sign in to comment.