diff --git a/.github/workflows/assimp.yml b/.github/workflows/assimp.yml
index d8c8f70742..a9b599bdfe 100644
--- a/.github/workflows/assimp.yml
+++ b/.github/workflows/assimp.yml
@@ -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: ""
@@ -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
diff --git a/.github/workflows/glfw.yml b/.github/workflows/glfw.yml
index 5eb9b2d2ee..2e5acc7230 100644
--- a/.github/workflows/glfw.yml
+++ b/.github/workflows/glfw.yml
@@ -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: ""
@@ -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
diff --git a/.github/workflows/openal-soft.yml b/.github/workflows/openal-soft.yml
new file mode 100644
index 0000000000..76188dad29
--- /dev/null
+++ b/.github/workflows/openal-soft.yml
@@ -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 }}
+
diff --git a/.github/workflows/sdl2.yml b/.github/workflows/sdl2.yml
index 081c9844af..5cf5caaf01 100644
--- a/.github/workflows/sdl2.yml
+++ b/.github/workflows/sdl2.yml
@@ -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: ""
@@ -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
@@ -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:
@@ -82,5 +114,5 @@ jobs:
run: ${{ matrix.env.nuke_invoke }} SDL2
env:
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}
-
+
diff --git a/.github/workflows/shaderc.yml b/.github/workflows/shaderc.yml
index 124fadd0ac..f74a9c41f9 100644
--- a/.github/workflows/shaderc.yml
+++ b/.github/workflows/shaderc.yml
@@ -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:
diff --git a/.github/workflows/spirv-cross.yml b/.github/workflows/spirv-cross.yml
index 39e7c9a606..f7b16bb4d9 100644
--- a/.github/workflows/spirv-cross.yml
+++ b/.github/workflows/spirv-cross.yml
@@ -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:
diff --git a/.github/workflows/spirv-reflect.yml b/.github/workflows/spirv-reflect.yml
index 945503031a..9388bed559 100644
--- a/.github/workflows/spirv-reflect.yml
+++ b/.github/workflows/spirv-reflect.yml
@@ -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:
diff --git a/.github/workflows/swiftshader.yml b/.github/workflows/swiftshader.yml
index 5770ec238a..2715ebde8e 100644
--- a/.github/workflows/swiftshader.yml
+++ b/.github/workflows/swiftshader.yml
@@ -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: ""
@@ -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
diff --git a/.github/workflows/vulkan-loader.yml b/.github/workflows/vulkan-loader.yml
index 4438bd909a..4b6b9fb1dc 100644
--- a/.github/workflows/vulkan-loader.yml
+++ b/.github/workflows/vulkan-loader.yml
@@ -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 build-essential libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-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 pkg-config
+ for arch in amd64 arm64 armhf; do
+ sudo apt install -y libx11-xcb-dev:$arch libxkbcommon-dev:$arch libwayland-dev:$arch libxrandr-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: ""
@@ -41,7 +64,7 @@ jobs:
run: |
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive --depth 0 build/submodules/Vulkan-Loader
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
diff --git a/.github/workflows/wgpu.yml b/.github/workflows/wgpu.yml
index b0569cc96e..f3cdfdcd3c 100644
--- a/.github/workflows/wgpu.yml
+++ b/.github/workflows/wgpu.yml
@@ -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 gcc-multilib
- - 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 libgcc-11-dev libgcc-11-dev-arm64-cross libgcc-11-dev-armhf-cross
+ - os: windows-2022
name: Windows
nuke_invoke: ./build.cmd
extras: ""
- - os: macos-latest
+ - os: macos-14
name: Darwin
nuke_invoke: ./build.sh
extras: ""
@@ -47,7 +67,7 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
if: runner.os == 'macOS'
with:
- toolchain: stable-x86_64-apple-darwin
+ toolchain: stable-aarch64-apple-darwin
- name: Add targets
if: runner.os == 'Windows'
@@ -58,12 +78,13 @@ jobs:
- name: Add targets
if: runner.os == 'Linux'
run: |
- rustup target add i686-unknown-linux-gnu
+ rustup target add aarch64-unknown-linux-gnu
+ rustup target add arm-unknown-linux-gnueabihf
- name: Add targets
if: runner.os == 'macOS'
run: |
- rustup target add aarch64-apple-darwin
+ rustup target add x86_64-apple-darwin
- uses: actions/checkout@v2
with:
diff --git a/.gitmodules b/.gitmodules
index de5272891d..1489f22dd3 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -52,3 +52,6 @@
[submodule "build/submodules/MoltenVK"]
path = build/submodules/MoltenVK
url = https://github.com/KhronosGroup/MoltenVK
+[submodule "build/submodules/openal-soft"]
+ path = build/submodules/openal-soft
+ url = https://github.com/kcat/openal-soft
diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json
index e18f4e81b8..09c66fc913 100644
--- a/.nuke/build.schema.json
+++ b/.nuke/build.schema.json
@@ -154,6 +154,7 @@
"FullPushToNuGet",
"GLFW",
"MoltenVK",
+ "OpenALSoft",
"Pack",
"Prerequisites",
"PushToNuGet",
@@ -197,6 +198,7 @@
"FullPushToNuGet",
"GLFW",
"MoltenVK",
+ "OpenALSoft",
"Pack",
"Prerequisites",
"PushToNuGet",
diff --git a/build/cmake/aarch64-linux-gnu.cmake b/build/cmake/aarch64-linux-gnu.cmake
new file mode 100644
index 0000000000..d3a20e4a38
--- /dev/null
+++ b/build/cmake/aarch64-linux-gnu.cmake
@@ -0,0 +1,13 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc")
+set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++")
+set(CMAKE_LINKER "/usr/bin/aarch64-linux-gnu-ld")
+set(PKG_CONFIG_EXECUTABLE "/usr/bin/pkg-config")
+set(ENV{PKG_CONFIG_LIBDIR} "/usr/lib/aarch64-linux-gnu/pkgconfig")
+set(ENV{PKG_CONFIG_PATH} "/usr/lib/pkgconfig:/usr/share/pkgconfig")
+set(CMAKE_FIND_ROOT_PATH "/usr/aarch64-linux-gnu")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
diff --git a/build/cmake/arm-linux-gnueabihf.cmake b/build/cmake/arm-linux-gnueabihf.cmake
new file mode 100644
index 0000000000..491844cae8
--- /dev/null
+++ b/build/cmake/arm-linux-gnueabihf.cmake
@@ -0,0 +1,13 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR armv7l)
+set(CMAKE_C_COMPILER "/usr/bin/arm-linux-gnueabihf-gcc")
+set(CMAKE_CXX_COMPILER "/usr/bin/arm-linux-gnueabihf-g++")
+set(CMAKE_LINKER "/usr/bin/arm-linux-gnueabihf-ld")
+set(PKG_CONFIG_EXECUTABLE "/usr/bin/pkg-config")
+set(ENV{PKG_CONFIG_LIBDIR} "/usr/lib/arm-linux-gnueabihf/pkgconfig")
+set(ENV{PKG_CONFIG_PATH} "/usr/lib/pkgconfig:/usr/share/pkgconfig")
+set(CMAKE_FIND_ROOT_PATH "/usr/arm-linux-gnueabihf")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
diff --git a/build/cmake/x86_64-linux-gnu.cmake b/build/cmake/x86_64-linux-gnu.cmake
new file mode 100644
index 0000000000..73dd97caf9
--- /dev/null
+++ b/build/cmake/x86_64-linux-gnu.cmake
@@ -0,0 +1,13 @@
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR x86_64)
+set(CMAKE_C_COMPILER "/usr/bin/x86_64-linux-gnu-gcc")
+set(CMAKE_CXX_COMPILER "/usr/bin/x86_64-linux-gnu-g++")
+set(CMAKE_LINKER "/usr/bin/x86_64-linux-gnu-ld")
+set(PKG_CONFIG_EXECUTABLE "/usr/bin/pkg-config")
+set(ENV{PKG_CONFIG_LIBDIR} "/usr/lib/x86_64-linux-gnu/pkgconfig")
+set(ENV{PKG_CONFIG_PATH} "/usr/lib/pkgconfig:/usr/share/pkgconfig")
+set(CMAKE_FIND_ROOT_PATH "/usr/x86_64-linux-gnu")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
diff --git a/build/nuke/Native/Assimp.cs b/build/nuke/Native/Assimp.cs
index 15d92957d2..bb09bc4351 100644
--- a/build/nuke/Native/Assimp.cs
+++ b/build/nuke/Native/Assimp.cs
@@ -36,57 +36,69 @@ partial class Build {
(
() =>
{
- var @out = AssimpPath / "build";
- var prepare = "cmake -S. -B build -D BUILD_SHARED_LIBS=ON -DASSIMP_WARNINGS_AS_ERRORS=OFF";
- var build = $"cmake --build build --config Release{JobsArg}";
- EnsureCleanDirectory(@out);
+ var buildDir = AssimpPath / "build";
var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.Assimp.Native" / "runtimes";
+
+ var prepare = "cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DASSIMP_WARNINGS_AS_ERRORS=OFF -DASSIMP_BUILD_TESTS=OFF";
+ var build = $"cmake --build . --config Release{JobsArg}";
+
if (OperatingSystem.IsWindows())
{
- InheritedShell($"{prepare} -A X64", AssimpPath)
- .AssertZeroExitCode();
- InheritedShell(build, AssimpPath)
- .AssertZeroExitCode();
-
- CopyAs(@out, "bin/Release/assimp-*-mt.dll", runtimes / "win-x64" / "native" / "Assimp64.dll");
- EnsureCleanDirectory(@out);
+ foreach (var (platform, rid) in new[]
+ {
+ ("Win32", "win-x86"),
+ ("x64", "win-x64"),
+ ("ARM64", "win-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
- InheritedShell($"{prepare} -A Win32", AssimpPath)
- .AssertZeroExitCode();
- InheritedShell(build, AssimpPath)
- .AssertZeroExitCode();
+ InheritedShell($"{prepare} -A {platform}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
- CopyAs(@out, "bin/Release/assimp-*-mt.dll", runtimes / "win-x86" / "native" / "Assimp32.dll");
+ CopyAs(buildDir / "bin" / "Release", "assimp-*-mt.dll", runtimes / rid / "native" / $"Assimp{(rid.Contains("64") ? 64 : 32)}.dll");
+ }
}
else if (OperatingSystem.IsLinux())
{
- InheritedShell($"{prepare} -DCMAKE_SYSTEM_PROCESSOR=x86_64", AssimpPath)
- .AssertZeroExitCode();
- InheritedShell(build, AssimpPath)
- .AssertZeroExitCode();
+ foreach (var (triple, rid) in new[]
+ {
+ ("x86_64-linux-gnu", "linux-x64"),
+ ("arm-linux-gnueabihf", "linux-arm"),
+ ("aarch64-linux-gnu", "linux-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} {GetCMakeToolchainFlag(triple)}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ InheritedShell($"{triple}-strip --strip-unneeded bin/libassimp.so.5", buildDir).AssertZeroExitCode();
- CopyAll(@out.GlobFiles("bin/libassimp.so.5"), runtimes / "linux-x64" / "native");
+ CopyAll((buildDir / "bin").GlobFiles("libassimp.so.5"), runtimes / rid / "native");
+ }
}
else if (OperatingSystem.IsMacOS())
{
- InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES=x86_64", AssimpPath)
- .AssertZeroExitCode();
- InheritedShell(build, AssimpPath)
- .AssertZeroExitCode();
- CopyAll(@out.GlobFiles("bin/libassimp.5.dylib"), runtimes / "osx-x64" / "native");
+ foreach (var (arch, rid) in new[]
+ {
+ ("x86_64", "osx-x64"),
+ ("arm64", "osx-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
- EnsureCleanDirectory(@out);
+ InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES={arch}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
- InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES=arm64", AssimpPath)
- .AssertZeroExitCode();
- InheritedShell(build, AssimpPath)
- .AssertZeroExitCode();
+ InheritedShell($"strip -Sx bin/libassimp.5.dylib", buildDir).AssertZeroExitCode();
- CopyAll(@out.GlobFiles("bin/libassimp.5.dylib"), runtimes / "osx-arm64" / "native");
+ CopyAll((buildDir / "bin").GlobFiles("libassimp.5.dylib"), runtimes / rid / "native");
+ }
}
PrUpdatedNativeBinary("Assimp");
}
)
);
-}
\ No newline at end of file
+}
diff --git a/build/nuke/Native/Core.cs b/build/nuke/Native/Core.cs
index 3544ad290f..30d9223eb3 100644
--- a/build/nuke/Native/Core.cs
+++ b/build/nuke/Native/Core.cs
@@ -39,6 +39,11 @@ partial class Build {
? Environment.ProcessorCount - 1
: 1;
+ public string GetCMakeToolchainFlag(string target)
+ {
+ return $"-DCMAKE_TOOLCHAIN_FILE={RootDirectory / "build" / "cmake" / target}.cmake";
+ }
+
public void CopyAs(AbsolutePath @out, string from, string to)
{
var file = @out.GlobFiles(from).First();
diff --git a/build/nuke/Native/GLFW.cs b/build/nuke/Native/GLFW.cs
index 57b472de5e..596185dd82 100644
--- a/build/nuke/Native/GLFW.cs
+++ b/build/nuke/Native/GLFW.cs
@@ -36,66 +36,69 @@ partial class Build {
(
() =>
{
- var @out = GLFWPath / "build";
- var prepare = "cmake -S. -B build -D BUILD_SHARED_LIBS=ON";
- var build = $"cmake --build build --config Release{JobsArg}";
- EnsureCleanDirectory(@out);
+ var buildDir = GLFWPath / "build";
var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.GLFW.Native" / "runtimes";
- if (OperatingSystem.IsWindows())
- {
- InheritedShell($"{prepare} -A X64", GLFWPath)
- .AssertZeroExitCode();
- InheritedShell(build, GLFWPath)
- .AssertZeroExitCode();
-
- CopyAll(@out.GlobFiles("src/Release/glfw3.dll"), runtimes / "win-x64" / "native");
- EnsureCleanDirectory(@out);
+ var prepare = "cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF";
+ var build = $"cmake --build . --config Release{JobsArg}";
- InheritedShell($"{prepare} -A Win32", GLFWPath)
- .AssertZeroExitCode();
- InheritedShell(build, GLFWPath)
- .AssertZeroExitCode();
+ if (OperatingSystem.IsWindows())
+ {
+ foreach (var (platform, rid) in new[]
+ {
+ ("Win32", "win-x86"),
+ ("x64", "win-x64"),
+ ("ARM64", "win-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
- CopyAll(@out.GlobFiles("src/Release/glfw3.dll"), runtimes / "win-x86" / "native");
-
- EnsureCleanDirectory(@out);
-
- InheritedShell($"{prepare} -A arm64", GLFWPath)
- .AssertZeroExitCode();
- InheritedShell(build, GLFWPath)
- .AssertZeroExitCode();
+ InheritedShell($"{prepare} -A {platform}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
- CopyAll(@out.GlobFiles("src/Release/glfw3.dll"), runtimes / "win-arm64" / "native");
+ CopyAll((buildDir / "src" / "Release").GlobFiles("glfw3.dll"), runtimes / rid / "native");
+ }
}
else if (OperatingSystem.IsLinux())
{
- InheritedShell($"{prepare} -DCMAKE_SYSTEM_PROCESSOR=x86_64", GLFWPath)
- .AssertZeroExitCode();
- InheritedShell(build, GLFWPath)
- .AssertZeroExitCode();
- CopyAll(@out.GlobFiles("src/libglfw.so"), runtimes / "linux-x64" / "native");
+ foreach (var (triple, rid) in new[]
+ {
+ ("x86_64-linux-gnu", "linux-x64"),
+ ("arm-linux-gnueabihf", "linux-arm"),
+ ("aarch64-linux-gnu", "linux-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} {GetCMakeToolchainFlag(triple)}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ InheritedShell($"{triple}-strip --strip-unneeded src/libglfw.so", buildDir).AssertZeroExitCode();
+
+ CopyFile((buildDir / "src").GlobFiles("libglfw.so.3.*").First(), runtimes / rid / "native" / "libglfw.so.3", FileExistsPolicy.Overwrite);
+ }
}
else if (OperatingSystem.IsMacOS())
{
- InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES=x86_64", GLFWPath)
- .AssertZeroExitCode();
- InheritedShell(build, GLFWPath)
- .AssertZeroExitCode();
- CopyAll(@out.GlobFiles("src/libglfw.3.dylib"), runtimes / "osx-x64" / "native");
+ foreach (var (arch, rid) in new[]
+ {
+ ("x86_64", "osx-x64"),
+ ("arm64", "osx-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
- EnsureCleanDirectory(@out);
+ InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES={arch}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
- InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES=arm64", GLFWPath)
- .AssertZeroExitCode();
- InheritedShell(build, GLFWPath)
- .AssertZeroExitCode();
+ InheritedShell($"strip -Sx src/libglfw.3.dylib", buildDir).AssertZeroExitCode();
- CopyAll(@out.GlobFiles("src/libglfw.3.dylib"), runtimes / "osx-arm64" / "native");
+ CopyAll((buildDir / "src").GlobFiles("libglfw.3.dylib"), runtimes / rid / "native");
+ }
}
PrUpdatedNativeBinary("GLFW");
}
)
);
-}
\ No newline at end of file
+}
diff --git a/build/nuke/Native/OpenALSoft.cs b/build/nuke/Native/OpenALSoft.cs
new file mode 100644
index 0000000000..34baa67537
--- /dev/null
+++ b/build/nuke/Native/OpenALSoft.cs
@@ -0,0 +1,106 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices;
+using JetBrains.Annotations;
+using Nuke.Common;
+using Nuke.Common.CI.GitHubActions;
+using Nuke.Common.Git;
+using Nuke.Common.IO;
+using Nuke.Common.Tooling;
+using Nuke.Common.Tools.DotNet;
+using Nuke.Common.Tools.Git;
+using Octokit;
+using Octokit.Internal;
+using static Nuke.Common.IO.CompressionTasks;
+using static Nuke.Common.IO.FileSystemTasks;
+using static Nuke.Common.IO.HttpTasks;
+using static Nuke.Common.Tooling.ProcessTasks;
+using static Nuke.Common.Tools.DotNet.DotNetTasks;
+using static Nuke.Common.Tools.Git.GitTasks;
+using static Nuke.Common.Tools.GitHub.GitHubTasks;
+
+partial class Build {
+ AbsolutePath OpenALSoftPath => RootDirectory / "build" / "submodules" / "openal-soft";
+
+ Target OpenALSoft => CommonTarget
+ (
+ x => x.Before(Compile)
+ .After(Clean)
+ .Executes
+ (
+ () =>
+ {
+ var buildDir = OpenALSoftPath / "build";
+ var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.OpenAL.Soft.Native" / "runtimes";
+
+ var prepare = "cmake .. -DCMAKE_BUILD_TYPE=Release -DALSOFT_UTILS=OFF -DALSOFT_NO_CONFIG_UTIL=ON -DALSOFT_EXAMPLES=OFF";
+ var build = $"cmake --build . --config Release{JobsArg}";
+
+ if (OperatingSystem.IsWindows())
+ {
+ foreach (var (platform, rid) in new[]
+ {
+ ("Win32", "win-x86"),
+ ("x64", "win-x64"),
+ ("ARM64", "win-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} -A {platform}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ CopyFile(buildDir / "Release" / "OpenAL32.dll", runtimes / rid / "native" / "soft_oal.dll", FileExistsPolicy.Overwrite);
+ }
+ }
+ else if (OperatingSystem.IsLinux())
+ {
+ foreach (var (triple, rid) in new[]
+ {
+ ("x86_64-linux-gnu", "linux-x64"),
+ ("arm-linux-gnueabihf", "linux-arm"),
+ ("aarch64-linux-gnu", "linux-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} -DALSOFT_BACKEND_SNDIO=OFF {GetCMakeToolchainFlag(triple)}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ InheritedShell($"{triple}-strip --strip-unneeded libopenal.so", buildDir).AssertZeroExitCode();
+
+ CopyFile(buildDir / "libopenal.so", runtimes / rid / "native" / "libopenal.so", FileExistsPolicy.Overwrite);
+ }
+ }
+ else if (OperatingSystem.IsMacOS())
+ {
+ foreach (var (arch, rid) in new[]
+ {
+ ("x86_64", "osx-x64"),
+ ("arm64", "osx-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES={arch}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ InheritedShell($"strip -Sx libopenal.dylib", buildDir).AssertZeroExitCode();
+
+ CopyFile(buildDir / "libopenal.dylib", runtimes / rid / "native" / "libopenal.dylib", FileExistsPolicy.Overwrite);
+ }
+ }
+
+ Git("checkout HEAD build/", OpenALSoftPath);
+
+ PrUpdatedNativeBinary("OpenALSoft");
+ }
+ )
+ );
+}
diff --git a/build/nuke/Native/SDL2.cs b/build/nuke/Native/SDL2.cs
index 1f6b50b152..dfd0efbb54 100644
--- a/build/nuke/Native/SDL2.cs
+++ b/build/nuke/Native/SDL2.cs
@@ -58,100 +58,83 @@ static readonly (string Sdk, string Arch, string Rid, string Args)[] iPhoneConfi
{
var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.SDL.Native" / "runtimes";
- var x86BuildDir = SDL2Path / "buildx86";
- var x64BuildDir = SDL2Path / "buildx64";
- var ARM64BuildDir = SDL2Path / "buildARM64";
- EnsureCleanDirectory(x86BuildDir);
- EnsureCleanDirectory(x64BuildDir);
- EnsureCleanDirectory(ARM64BuildDir);
-
if (OperatingSystem.IsWindows())
{
- var prepare = "cmake .. -DBUILD_SHARED_LIBS=ON";
- var build = $"cmake --build . --config Release{JobsArg}";
-
- InheritedShell($"{prepare} -A Win32", x86BuildDir).AssertZeroExitCode();
- InheritedShell(build, x86BuildDir).AssertZeroExitCode();
+ foreach (var (platform, rid) in new[]
+ {
+ ("Win32", "win-x86"),
+ ("x64", "win-x64"),
+ ("ARM64", "win-arm64"),
+ })
+ {
+ var buildDir = SDL2Path / "build";
- InheritedShell($"{prepare} -A X64", x64BuildDir).AssertZeroExitCode();
- InheritedShell(build, x64BuildDir).AssertZeroExitCode();
+ EnsureCleanDirectory(buildDir);
- InheritedShell($"{prepare} -A arm64", ARM64BuildDir).AssertZeroExitCode();
- InheritedShell(build, ARM64BuildDir).AssertZeroExitCode();
+ InheritedShell($"cmake .. -A {platform} -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DSDL_ASSERTIONS=disabled", buildDir).AssertZeroExitCode();
+ InheritedShell($"cmake --build . --config Release{JobsArg}", buildDir).AssertZeroExitCode();
- CopyFile(x86BuildDir / "Release" / "SDL2.dll", runtimes / "win-x86" / "native" / "SDL2.dll", FileExistsPolicy.Overwrite);
- CopyFile(x64BuildDir / "Release" / "SDL2.dll", runtimes / "win-x64" / "native" / "SDL2.dll", FileExistsPolicy.Overwrite);
- CopyFile(ARM64BuildDir / "Release" / "SDL2.dll", runtimes / "win-arm64" / "native" / "SDL2.dll", FileExistsPolicy.Overwrite);
+ CopyFile(buildDir / "Release" / "SDL2.dll", runtimes / rid / "native" / "SDL2.dll", FileExistsPolicy.Overwrite);
+ }
}
-
- if (OperatingSystem.IsLinux())
+ else if (OperatingSystem.IsLinux())
{
- if (RuntimeInformation.OSArchitecture == Architecture.Arm64)
+ foreach (var (triple, rid) in new[]
{
- InheritedShell("cmake ..", x86BuildDir).AssertZeroExitCode();
- InheritedShell("cmake --build .", x86BuildDir).AssertZeroExitCode();
-
- CopyFile(ARM64BuildDir.GlobFiles("libSDL2-2.0.so*").First(), runtimes / "linux-arm64" / "native" / "libSDL2-2.0.so", FileExistsPolicy.Overwrite);
- }
- else if (RuntimeInformation.OSArchitecture == Architecture.X64)
+ ("x86_64-linux-gnu", "linux-x64"),
+ ("arm-linux-gnueabihf", "linux-arm"),
+ ("aarch64-linux-gnu", "linux-arm64"),
+ })
{
- var envVars32bit = "CFLAGS='-m32 -O2' CXXFLAGS='-m32 -O2' LDFLAGS=-m32";
- var envVars64bit = "CFLAGS=-O2 CXXFLAGS=-O2";
+ var buildDir = SDL2Path / "build";
- InheritedShell($"{envVars32bit} ./configure --prefix={x86BuildDir}", SDL2Path).AssertZeroExitCode();
- InheritedShell($"{envVars32bit} make {JobsArg}", SDL2Path).AssertZeroExitCode();
- InheritedShell($"make install", SDL2Path).AssertZeroExitCode();
+ EnsureCleanDirectory(buildDir);
- InheritedShell($"{envVars64bit} ./configure --prefix={x64BuildDir}", SDL2Path).AssertZeroExitCode();
- InheritedShell($"{envVars64bit} make {JobsArg}", SDL2Path).AssertZeroExitCode();
+ InheritedShell($"./configure --prefix={buildDir} --disable-static --host={triple} --enable-assertions=disabled --enable-wayland-shared --enable-x11-shared", SDL2Path).AssertZeroExitCode();
+ InheritedShell($"make {JobsArg}", SDL2Path).AssertZeroExitCode();
InheritedShell($"make install", SDL2Path).AssertZeroExitCode();
- //Strip the libraries
- InheritedShell($"strip {x86BuildDir / "lib" / "libSDL2-2.0.so*"}", SDL2Path).AssertZeroExitCode();
- InheritedShell($"strip {x64BuildDir / "lib" / "libSDL2-2.0.so*"}", SDL2Path).AssertZeroExitCode();
+ InheritedShell($"{triple}-strip --strip-unneeded lib/libSDL2-2.0.so*", buildDir).AssertZeroExitCode();
- CopyFile((x86BuildDir / "lib").GlobFiles("libSDL2-2.0.so*").First(), runtimes / "linux-x86" / "native" / "libSDL2-2.0.so", FileExistsPolicy.Overwrite);
- CopyFile((x64BuildDir / "lib").GlobFiles("libSDL2-2.0.so*").First(), runtimes / "linux-x64" / "native" / "libSDL2-2.0.so", FileExistsPolicy.Overwrite);
- }
- else
- {
- throw new Exception($"Unable to build SDL libs on your architecture ({RuntimeInformation.OSArchitecture}).");
+ CopyFile((buildDir / "lib").GlobFiles("libSDL2-2.0.so*").First(), runtimes / rid / "native" / "libSDL2-2.0.so", FileExistsPolicy.Overwrite);
}
}
-
- if (OperatingSystem.IsMacOS())
+ else if (OperatingSystem.IsMacOS())
{
// iOS build/hackery ported from https://github.com/Ultz/SDL-Xamarin.iOS
- var mainH = File.ReadAllText(SDL2Path / "include" / "SDL_main.h");
- try
+
+ File.WriteAllText(
+ SDL2Path / "include" / "SDL_main.h",
+ $"#define SDL_MAIN_HANDLED\n{File.ReadAllText(SDL2Path / "include" / "SDL_main.h")}");
+
+ EnsureCleanDirectory(SDL2Path / "allbuild");
+
+ foreach (var (sdk, arch, rid, args) in iPhoneConfigs)
{
- File.WriteAllText(SDL2Path / "include" / "SDL_main.h", $"#define SDL_MAIN_HANDLED\n{mainH}");
- EnsureCleanDirectory(SDL2Path / "allbuild");
- foreach (var (sdk, arch, rid, args) in iPhoneConfigs)
- {
- InheritedShell($"xcodebuild -project SDL.xcodeproj {args} -sdk {sdk} -arch {arch} -configuration Release clean build -jobs {Jobs}", SDL2Path / "XCode" / "SDL")
- .AssertZeroExitCode();
- var ext = rid is "maccatalyst" or "osx" ? "dylib" : "a";
- var cfg = rid is "maccatalyst" or "osx" ? "Release" : $"Release-{sdk}";
- CopyFile(SDL2Path / "XCode" / "SDL" / "build" / cfg / $"libSDL2.{ext}", SDL2Path / "allbuild" / $"libSDL2.{sdk}.{arch}.{rid}.{ext}");
- }
- foreach (var rid in iPhoneConfigs.GroupBy(x => x.Rid))
- {
- var ext = rid.Key is "maccatalyst" or "osx" ? "dylib" : "a";
- var @in = string.Join("\" \"", rid.Select(x => SDL2Path / "allbuild" / $"libSDL2.{x.Sdk}.{x.Arch}.{rid.Key}.{ext}"));
- var @out = runtimes / rid.Key / "native" / (ext is "dylib" ? "libSDL2-2.0.dylib" : "libSDL2.a");
- EnsureCleanDirectory(Path.GetDirectoryName(@out));
- InheritedShell($"lipo -create -output \"{@out}\" \"{@in}\"").AssertZeroExitCode();
- }
+ InheritedShell($"xcodebuild -project SDL.xcodeproj {args} -sdk {sdk} -arch {arch} -configuration Release clean build -jobs {Jobs}", SDL2Path / "XCode" / "SDL").AssertZeroExitCode();
+
+ var ext = rid is "maccatalyst" or "osx" ? "dylib" : "a";
+ var cfg = rid is "maccatalyst" or "osx" ? "Release" : $"Release-{sdk}";
+
+ CopyFile(SDL2Path / "XCode" / "SDL" / "build" / cfg / $"libSDL2.{ext}", SDL2Path / "allbuild" / $"libSDL2.{sdk}.{arch}.{rid}.{ext}");
}
- finally
+
+ foreach (var rid in iPhoneConfigs.GroupBy(x => x.Rid))
{
- File.WriteAllText(SDL2Path / "include" / "SDL_main.h", mainH);
+ var ext = rid.Key is "maccatalyst" or "osx" ? "dylib" : "a";
+ var @in = string.Join("\" \"", rid.Select(x => SDL2Path / "allbuild" / $"libSDL2.{x.Sdk}.{x.Arch}.{rid.Key}.{ext}"));
+ var @out = runtimes / rid.Key / "native" / (ext is "dylib" ? "libSDL2-2.0.dylib" : "libSDL2.a");
+
+ EnsureCleanDirectory(Path.GetDirectoryName(@out));
+ InheritedShell($"lipo -create -output \"{@out}\" \"{@in}\"").AssertZeroExitCode();
+ InheritedShell($"strip -Sx \"{@out}\"").AssertZeroExitCode();
}
}
+ Git("checkout HEAD include/", SDL2Path);
+
PrUpdatedNativeBinary("SDL2");
}
)
);
-}
\ No newline at end of file
+}
diff --git a/build/nuke/Native/SPIRVCross.cs b/build/nuke/Native/SPIRVCross.cs
index 4562881514..fd8e4b2816 100644
--- a/build/nuke/Native/SPIRVCross.cs
+++ b/build/nuke/Native/SPIRVCross.cs
@@ -64,12 +64,12 @@ pub fn build(b: *std.Build) void {
lib.defineCMacro(""SPVC_PUBLIC_API"", ""__declspec(dllexport)"");
}
- //If we arent in debug, defined NDEBUG
- if (mode != .Debug)
+ //If we arent in debug, defined NDEBUG and strip symbols
+ if (mode != .Debug) {
lib.defineCMacro(""NDEBUG"", ""1"");
- if (mode == .ReleaseSmall)
lib.root_module.strip = true;
+ }
lib.addCSourceFiles(.{
.files = &.{
@@ -84,7 +84,7 @@ pub fn build(b: *std.Build) void {
""spirv_msl.cpp"",
""spirv_parser.cpp"",
""spirv_reflect.cpp"",
- },
+ },
.flags = flags
});
@@ -104,16 +104,16 @@ pub fn build(b: *std.Build) void {
//Write out the build script to the directory
File.WriteAllText(SPIRVCrossPath / "build.zig", SPIRVCrossBuildScript);
- string releaseMode = "-Doptimize=ReleaseSmall";
+ string releaseMode = "-Doptimize=ReleaseFast";
{ //Linux
//Build for Linux x86_64 with glibc 2.17 (old version specified for compatibility)
InheritedShell($"zig build {releaseMode} -Dtarget=x86_64-linux-gnu.2.17 --verbose", SPIRVCrossPath).AssertZeroExitCode();
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.so", runtimes / "linux-x64" / "native" / "libspirv-cross.so", FileExistsPolicy.Overwrite);
- //Build for Linux x86 with glibc 2.17 (old version specified for compatibility)
- InheritedShell($"zig build {releaseMode} -Dtarget=x86-linux-gnu.2.17 --verbose", SPIRVCrossPath).AssertZeroExitCode();
- CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.so", runtimes / "linux-x86" / "native" / "libspirv-cross.so", FileExistsPolicy.Overwrite);
+ //Build for Linux arm with glibc 2.17 (old version specified for compatibility)
+ InheritedShell($"zig build {releaseMode} -Dtarget=arm-linux-gnueabihf.2.17 --verbose", SPIRVCrossPath).AssertZeroExitCode();
+ CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.so", runtimes / "linux-arm" / "native" / "libspirv-cross.so", FileExistsPolicy.Overwrite);
//Build for Linux arm64 with glibc 2.17 (old version specified for compatibility)
InheritedShell($"zig build {releaseMode} -Dtarget=aarch64-linux-gnu.2.17 --verbose", SPIRVCrossPath).AssertZeroExitCode();
@@ -150,7 +150,7 @@ pub fn build(b: *std.Build) void {
.Concat((runtimes / "osx-x64" / "native").GlobFiles("*.dylib"))
.Concat((runtimes / "osx-arm64" / "native").GlobFiles("*.dylib"))
.Concat((runtimes / "linux-x64" / "native").GlobFiles("*.so"))
- .Concat((runtimes / "linux-x86" / "native").GlobFiles("*.so"))
+ .Concat((runtimes / "linux-arm" / "native").GlobFiles("*.so"))
.Concat((runtimes / "linux-arm64" / "native").GlobFiles("*.so"));
var glob = string.Empty;
diff --git a/build/nuke/Native/SPIRVReflect.cs b/build/nuke/Native/SPIRVReflect.cs
index 090329c955..6754c6b34b 100644
--- a/build/nuke/Native/SPIRVReflect.cs
+++ b/build/nuke/Native/SPIRVReflect.cs
@@ -45,7 +45,7 @@ pub fn build(b: *std.Build) void {
const lib: *std.Build.Step.Compile = b.addSharedLibrary(shared_lib_options);
lib.linkLibC();
- if(optimize == .ReleaseSmall)
+ if(optimize != .Debug)
lib.root_module.strip = true;
lib.addCSourceFiles(.{ .files = &.{""spirv_reflect.c""}, .flags = &.{ ""-std=c99"", ""-fPIC"" } });
@@ -65,16 +65,16 @@ pub fn build(b: *std.Build) void {
//Write out the build script to the directory
File.WriteAllText(SPIRVReflectPath / "build.zig", SPIRVReflectBuildScript);
- string buildMode = "-Doptimize=ReleaseSmall";
+ string buildMode = "-Doptimize=ReleaseFast";
{ //Linux
//Build for Linux x86_64 with glibc 2.17 (old version specified for compatibility)
InheritedShell($"zig build {buildMode} -Dtarget=x86_64-linux-gnu.2.17 --verbose", SPIRVReflectPath).AssertZeroExitCode();
CopyFile(SPIRVReflectPath / "zig-out" / "lib" / "libspirv-reflect.so", runtimes / "linux-x64" / "native" / "libspirv-reflect.so", FileExistsPolicy.Overwrite);
- //Build for Linux x86 with glibc 2.17 (old version specified for compatibility)
- InheritedShell($"zig build {buildMode} -Dtarget=x86-linux-gnu.2.17 --verbose", SPIRVReflectPath).AssertZeroExitCode();
- CopyFile(SPIRVReflectPath / "zig-out" / "lib" / "libspirv-reflect.so", runtimes / "linux-x86" / "native" / "libspirv-reflect.so", FileExistsPolicy.Overwrite);
+ //Build for Linux arm with glibc 2.17 (old version specified for compatibility)
+ InheritedShell($"zig build {buildMode} -Dtarget=arm-linux-gnueabihf.2.17 --verbose", SPIRVReflectPath).AssertZeroExitCode();
+ CopyFile(SPIRVReflectPath / "zig-out" / "lib" / "libspirv-reflect.so", runtimes / "linux-arm" / "native" / "libspirv-reflect.so", FileExistsPolicy.Overwrite);
//Build for Linux arm64 with glibc 2.17 (old version specified for compatibility)
InheritedShell($"zig build {buildMode} -Dtarget=aarch64-linux-gnu.2.17 --verbose", SPIRVReflectPath).AssertZeroExitCode();
@@ -111,7 +111,7 @@ pub fn build(b: *std.Build) void {
.Concat((runtimes / "osx-x64" / "native").GlobFiles("*.dylib"))
.Concat((runtimes / "osx-arm64" / "native").GlobFiles("*.dylib"))
.Concat((runtimes / "linux-x64" / "native").GlobFiles("*.so"))
- .Concat((runtimes / "linux-x86" / "native").GlobFiles("*.so"))
+ .Concat((runtimes / "linux-arm" / "native").GlobFiles("*.so"))
.Concat((runtimes / "linux-arm64" / "native").GlobFiles("*.so"));
var glob = string.Empty;
@@ -121,4 +121,4 @@ pub fn build(b: *std.Build) void {
}
)
);
-}
\ No newline at end of file
+}
diff --git a/build/nuke/Native/Shaderc.cs b/build/nuke/Native/Shaderc.cs
index e89f3c3fdb..0364f949cc 100644
--- a/build/nuke/Native/Shaderc.cs
+++ b/build/nuke/Native/Shaderc.cs
@@ -542,8 +542,8 @@ pub fn build(b: *std.Build) void {
shaderc.linkLibrary(spirv_tools);
shaderc.linkLibrary(glslang);
- //On ReleaseSmall, lets strip the binary to reduce size further
- if (optimize == .ReleaseSmall) {
+ //On release builds, lets strip the binary to reduce size further
+ if (optimize != .Debug) {
shaderc.root_module.strip = true;
}
@@ -584,16 +584,16 @@ pub fn build(b: *std.Build) void {
const string libname = "shaderc_shared";
- const string optimizeMode = "-Doptimize=ReleaseSmall";
-
- //Build shaderc for Linux x86
- InheritedShell($"zig build -Dtarget=x86-linux-gnu.2.17 {optimizeMode}", ShadercPath).AssertZeroExitCode();
- CopyFile(ShadercPath / "zig-out" / "lib" / $"lib{libname}.so", runtimes / "linux-x86" / "native" / $"lib{libname}.so", FileExistsPolicy.Overwrite);
+ const string optimizeMode = "-Doptimize=ReleaseFast";
//Build shaderc for Linux x86_64
InheritedShell($"zig build -Dtarget=x86_64-linux-gnu.2.17 {optimizeMode}", ShadercPath).AssertZeroExitCode();
CopyFile(ShadercPath / "zig-out" / "lib" / $"lib{libname}.so", runtimes / "linux-x64" / "native" / $"lib{libname}.so", FileExistsPolicy.Overwrite);
+ //Build shaderc for Linux ARM
+ InheritedShell($"zig build -Dtarget=arm-linux-gnueabihf.2.17 {optimizeMode}", ShadercPath).AssertZeroExitCode();
+ CopyFile(ShadercPath / "zig-out" / "lib" / $"lib{libname}.so", runtimes / "linux-arm" / "native" / $"lib{libname}.so", FileExistsPolicy.Overwrite);
+
//Build shaderc for Linux ARM64
InheritedShell($"zig build -Dtarget=aarch64-linux-gnu.2.17 {optimizeMode}", ShadercPath).AssertZeroExitCode();
CopyFile(ShadercPath / "zig-out" / "lib" / $"lib{libname}.so", runtimes / "linux-arm64" / "native" / $"lib{libname}.so", FileExistsPolicy.Overwrite);
@@ -624,7 +624,7 @@ pub fn build(b: *std.Build) void {
.Concat((runtimes / "osx-x64" / "native").GlobFiles("*.dylib"))
.Concat((runtimes / "osx-arm64" / "native").GlobFiles("*.dylib"))
.Concat((runtimes / "linux-x64" / "native").GlobFiles("*.so"))
- .Concat((runtimes / "linux-x86" / "native").GlobFiles("*.so"))
+ .Concat((runtimes / "linux-arm" / "native").GlobFiles("*.so"))
.Concat((runtimes / "linux-arm64" / "native").GlobFiles("*.so"));
var glob = string.Empty;
diff --git a/build/nuke/Native/SwiftShader.cs b/build/nuke/Native/SwiftShader.cs
index 2874904ce6..522bfd3c7d 100644
--- a/build/nuke/Native/SwiftShader.cs
+++ b/build/nuke/Native/SwiftShader.cs
@@ -26,7 +26,7 @@
using static Nuke.Common.Tools.GitHub.GitHubTasks;
partial class Build {
- AbsolutePath SwiftShaderBuildPath => RootDirectory / "build" / "submodules" / "SwiftShader" / "build";
+ AbsolutePath SwiftShaderPath => RootDirectory / "build" / "submodules" / "SwiftShader";
Target SwiftShader => CommonTarget
(
@@ -36,78 +36,79 @@ partial class Build {
(
() =>
{
- var sysName = OperatingSystem.IsLinux() ? "Linux" :
- OperatingSystem.IsWindows() ? "Windows" :
- OperatingSystem.IsMacOS() ? "Darwin" : throw new PlatformNotSupportedException();
- DeleteDirectory(SwiftShaderBuildPath);
- Git("checkout HEAD build/", SwiftShaderBuildPath / "..");
- StartProcess("cmake", ".. -DCMAKE_BUILD_TYPE=Release", SwiftShaderBuildPath)
- .AssertZeroExitCode();
- StartProcess("cmake", $"--build .{JobsArg} --config Release", SwiftShaderBuildPath)
- .AssertWaitForExit(); // might fail... as long as the output exists we're happy
- var fname = sysName switch
- {
- "Linux" => "libvk_swiftshader.so",
- "Windows" => "vk_swiftshader.dll",
- "Darwin" => "libvk_swiftshader.dylib",
- _ => throw new("what")
- };
-
+ var buildDir = SwiftShaderPath / "build";
var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.Vulkan.SwiftShader.Native" / "runtimes";
- var outputPath = SwiftShaderBuildPath / sysName;
- const string icd = "vk_swiftshader_icd.json";
+
+ var prepare = "cmake .. -DSWIFTSHADER_WARNINGS_AS_ERRORS=FALSE -DSWIFTSHADER_BUILD_TESTS=FALSE";
+ var build = $"cmake --build . --config Release{JobsArg}";
+
+ // Work around SwiftShader's silly Git hook installation logic that fails as a submodule.
+ File.WriteAllText(
+ SwiftShaderPath / "CMakeLists.txt",
+ File.ReadAllText(SwiftShaderPath / "CMakeLists.txt")
+ .Replace("if(NOT EXISTS ${CMAKE_SOURCE_DIR}/.git/hooks/commit-msg)", "if(FALSE)"));
+
if (OperatingSystem.IsWindows())
{
- CopyFile
- (
- outputPath / fname, runtimes / "win-x64" / "native" / fname,
- FileExistsPolicy.Overwrite
- ); // we'll use WOW64
- CopyFile
- (
- outputPath / fname, runtimes / "win-x86" / "native" / fname,
- FileExistsPolicy.Overwrite
- );
- CopyFile
- (
- outputPath / icd, runtimes / "win-x64" / "native" / icd,
- FileExistsPolicy.Overwrite
- );
- CopyFile
- (
- outputPath / icd, runtimes / "win-x86" / "native" / icd,
- FileExistsPolicy.Overwrite
- );
+ foreach (var (platform, rid) in new[]
+ {
+ ("Win32", "win-x86"),
+ ("x64", "win-x64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} -A {platform}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ CopyFile(buildDir / "Windows" / "vk_swiftshader.dll", runtimes / rid / "native" / "vk_swiftshader.dll", FileExistsPolicy.Overwrite);
+ CopyFile(buildDir / "Windows" / "vk_swiftshader_icd.json", runtimes / rid / "native" / "vk_swiftshader_icd.json", FileExistsPolicy.Overwrite);
+ }
}
else if (OperatingSystem.IsLinux())
{
- CopyFile
- (
- outputPath / fname, runtimes / "linux-x64" / "native" / fname,
- FileExistsPolicy.Overwrite
- );
- CopyFile
- (
- outputPath / icd, runtimes / "linux-x64" / "native" / icd,
- FileExistsPolicy.Overwrite
- );
+ foreach (var (triple, rid) in new[]
+ {
+ ("x86_64-linux-gnu", "linux-x64"),
+ ("arm-linux-gnueabihf", "linux-arm"),
+ ("aarch64-linux-gnu", "linux-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} {GetCMakeToolchainFlag(triple)}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ InheritedShell($"{triple}-strip --strip-unneeded Linux/libvk_swiftshader.so", buildDir).AssertZeroExitCode();
+
+ CopyFile(buildDir / "Linux" / "libvk_swiftshader.so", runtimes / rid / "native" / "libvk_swiftshader.so", FileExistsPolicy.Overwrite);
+ CopyFile(buildDir / "Linux" / "vk_swiftshader_icd.json", runtimes / rid / "native" / "vk_swiftshader_icd.json", FileExistsPolicy.Overwrite);
+ }
}
else if (OperatingSystem.IsMacOS())
{
- CopyFile
- (
- outputPath / fname, runtimes / "osx-x64" / "native" / fname,
- FileExistsPolicy.Overwrite
- );
- CopyFile
- (
- outputPath / icd, runtimes / "osx-x64" / "native" / icd,
- FileExistsPolicy.Overwrite
- );
+ foreach (var (arch, rid) in new[]
+ {
+ ("x86_64", "osx-x64"),
+ ("arm64", "osx-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES={arch}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ InheritedShell($"strip -Sx Darwin/libvk_swiftshader.dylib", buildDir).AssertZeroExitCode();
+
+ CopyFile(buildDir / "Darwin" / "libvk_swiftshader.dylib", runtimes / rid / "native" / "libvk_swiftshader.dylib", FileExistsPolicy.Overwrite);
+ CopyFile(buildDir / "Darwin" / "vk_swiftshader_icd.json", runtimes / rid / "native" / "vk_swiftshader_icd.json", FileExistsPolicy.Overwrite);
+ }
}
+ Git("checkout HEAD CMakeLists.txt build/", SwiftShaderPath);
+
PrUpdatedNativeBinary("SwiftShader");
}
)
);
-}
\ No newline at end of file
+}
diff --git a/build/nuke/Native/Vkd3d.cs b/build/nuke/Native/Vkd3d.cs
index f280cc5f49..4c50335041 100644
--- a/build/nuke/Native/Vkd3d.cs
+++ b/build/nuke/Native/Vkd3d.cs
@@ -90,7 +90,7 @@ partial class Build {
CopyFile(vkd3dBuild / "source" / "libSPIRV-Tools-shared.so", vkd3dShaderCompiler / "libSPIRV-Tools-shared.so");
//Build the shader compiler
- InheritedShell($"zig build -Doptimize=ReleaseSmall -Dtarget=x86_64-linux-gnu --verbose", vkd3dShaderCompiler).AssertZeroExitCode();
+ InheritedShell($"zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-gnu --verbose", vkd3dShaderCompiler).AssertZeroExitCode();
//Copy the resulting shader compiler to the native output
CopyFile(vkd3dShaderCompiler / "zig-out" / "lib" / "libd3dcompile_vkd3d.so", runtimes / "linux-x64" / "native" / "libd3dcompile_vkd3d.so", FileExistsPolicy.Overwrite);
@@ -100,4 +100,4 @@ partial class Build {
}
)
);
-}
\ No newline at end of file
+}
diff --git a/build/nuke/Native/VulkanLoader.cs b/build/nuke/Native/VulkanLoader.cs
index eb589de50d..fd5b7cbe35 100644
--- a/build/nuke/Native/VulkanLoader.cs
+++ b/build/nuke/Native/VulkanLoader.cs
@@ -31,39 +31,77 @@ partial class Build {
Target VulkanLoader => CommonTarget
(
x => x.Before(Compile)
- .After(Clean)
- .Executes
- (
- () =>
- {
- var @out = VulkanLoaderPath / "build";
- EnsureCleanDirectory(@out);
- var abi = OperatingSystem.IsWindows() ? " -DCMAKE_GENERATOR_PLATFORM=Win32" : string.Empty;
- InheritedShell
- (
- $"cmake -S. -Bbuild -DUPDATE_DEPS=On -DCMAKE_BUILD_TYPE=Release{abi}",
- VulkanLoaderPath
- )
- .AssertZeroExitCode();
- InheritedShell($"cmake --build build --config Release{JobsArg}", VulkanLoaderPath)
- .AssertZeroExitCode();
- var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.Vulkan.Loader.Native" / "runtimes";
- if (OperatingSystem.IsWindows())
- {
- CopyAll(@out.GlobFiles("loader/Release/vulkan-1.dll"), runtimes / "win-x64" / "native");
- CopyAll(@out.GlobFiles("loader/Release/vulkan-1.dll"), runtimes / "win-x86" / "native");
- }
- else
- {
- CopyAll
- (
- @out.GlobFiles("loader/libvulkan.so", "loader/libvulkan.dylib"),
- runtimes / (OperatingSystem.IsMacOS() ? "osx-x64" : "linux-x64") / "native"
- );
- }
-
- PrUpdatedNativeBinary("Vulkan Loader");
- }
- )
+ .After(Clean)
+ .Executes
+ (
+ () =>
+ {
+ var buildDir = VulkanLoaderPath / "build";
+ var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.Vulkan.Loader.Native" / "runtimes";
+
+ var prepare = "cmake .. -DCMAKE_BUILD_TYPE=Release -DUPDATE_DEPS=ON";
+ var build = $"cmake --build . --config Release{JobsArg}";
+
+ if (OperatingSystem.IsWindows())
+ {
+ foreach (var (platform, rid) in new[]
+ {
+ ("Win32", "win-x86"),
+ ("x64", "win-x64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} -A {platform}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ CopyAll((buildDir / "loader" / "Release").GlobFiles("vulkan-1.dll"), runtimes / rid / "native");
+ }
+ }
+ else if (OperatingSystem.IsLinux())
+ {
+
+ foreach (var (triple, rid) in new[]
+ {
+ ("x86_64-linux-gnu", "linux-x64"),
+ ("aarch64-linux-gnu", "linux-arm64"),
+ })
+ {
+ EnsureCleanDirectory(buildDir);
+
+ InheritedShell($"{prepare} {GetCMakeToolchainFlag(triple)}", buildDir).AssertZeroExitCode();
+ InheritedShell(build, buildDir).AssertZeroExitCode();
+
+ InheritedShell($"{triple}-strip --strip-unneeded loader/libvulkan.so", buildDir).AssertZeroExitCode();
+
+ CopyAll((buildDir / "loader").GlobFiles("libvulkan.so"), runtimes / rid / "native");
+ }
+ }
+ else if (OperatingSystem.IsMacOS())
+ {
+ foreach (var (arch, rid) in new[]
+ {
+ ("x86_64", "osx-x64"),
+ ("arm64", "osx-arm64"),
+ })
+ {
+ // For some reason, EnsureCleanDirectory(buildDir) fails in CI after performing one
+ // build, so just create a unique directory for each build.
+ var macOsBuildDir = VulkanLoaderPath / ("build-" + arch);
+
+ EnsureCleanDirectory(macOsBuildDir);
+
+ InheritedShell($"{prepare} -DCMAKE_OSX_ARCHITECTURES={arch}", macOsBuildDir).AssertZeroExitCode();
+ InheritedShell(build, macOsBuildDir).AssertZeroExitCode();
+
+ InheritedShell($"strip -Sx loader/libvulkan.dylib", macOsBuildDir).AssertZeroExitCode();
+
+ CopyAll((macOsBuildDir / "loader").GlobFiles("libvulkan.dylib"), runtimes / rid / "native");
+ }
+ }
+
+ PrUpdatedNativeBinary("Vulkan Loader");
+ }
+ )
);
-}
\ No newline at end of file
+}
diff --git a/build/nuke/Native/Wgpu.cs b/build/nuke/Native/Wgpu.cs
index 29f4e185bb..649ca5a989 100644
--- a/build/nuke/Native/Wgpu.cs
+++ b/build/nuke/Native/Wgpu.cs
@@ -36,45 +36,66 @@ partial class Build {
(
() =>
{
+ var target = WgpuPath / "target";
var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.WebGPU.Native.WGPU" / "runtimes";
- var target = WgpuPath / "target";
EnsureCleanDirectory(target);
- if(OperatingSystem.IsWindows())
- {
- //Compile Windows libraries
- InheritedShell("cargo build --release --target=i686-pc-windows-msvc", WgpuPath).AssertZeroExitCode();
- InheritedShell("cargo build --release --target=x86_64-pc-windows-msvc", WgpuPath).AssertZeroExitCode();
- InheritedShell("cargo build --release --target=aarch64-pc-windows-msvc", WgpuPath).AssertZeroExitCode();
+ (string Triple, string Rid)[] targets;
+ string library;
- CopyFile(target / "i686-pc-windows-msvc" / "release" / "wgpu_native.dll", runtimes / "win-x86" / "native" / "wgpu_native.dll", FileExistsPolicy.Overwrite);
- CopyFile(target / "x86_64-pc-windows-msvc" / "release" / "wgpu_native.dll", runtimes / "win-x64" / "native" / "wgpu_native.dll", FileExistsPolicy.Overwrite);
- CopyFile(target / "aarch64-pc-windows-msvc" / "release" / "wgpu_native.dll", runtimes / "win-arm64" / "native" / "wgpu_native.dll", FileExistsPolicy.Overwrite);
+ if (OperatingSystem.IsWindows())
+ {
+ targets = new[]
+ {
+ ("i686-pc-windows-msvc", "win-x86"),
+ ("x86_64-pc-windows-msvc", "win-x64"),
+ ("aarch64-pc-windows-msvc", "win-arm64"),
+ };
+ library = "wgpu_native.dll";
}
-
- if(OperatingSystem.IsLinux())
+ else if (OperatingSystem.IsLinux())
{
- //Compile Linux libraries
- InheritedShell("cargo build --release --target=i686-unknown-linux-gnu", WgpuPath).AssertZeroExitCode();
- InheritedShell("cargo build --release --target=x86_64-unknown-linux-gnu", WgpuPath).AssertZeroExitCode();
-
- CopyFile(target / "i686-unknown-linux-gnu" / "release" / "libwgpu_native.so", runtimes / "linux-x86" / "native" / "libwgpu_native.so", FileExistsPolicy.Overwrite);
- CopyFile(target / "x86_64-unknown-linux-gnu" / "release" / "libwgpu_native.so", runtimes / "linux-x64" / "native" / "libwgpu_native.so", FileExistsPolicy.Overwrite);
+ targets = new[]
+ {
+ ("x86_64-unknown-linux-gnu", "linux-x64"),
+ ("arm-unknown-linux-gnueabihf", "linux-arm"),
+ ("aarch64-unknown-linux-gnu", "linux-arm64"),
+ };
+ library = "libwgpu_native.so";
+ }
+ else if (OperatingSystem.IsMacOS())
+ {
+ targets = new[]
+ {
+ ("x86_64-apple-darwin", "osx-x64"),
+ ("aarch64-apple-darwin", "osx-arm64"),
+ };
+ library = "libwgpu_native.dylib";
}
+ else
+ throw new Exception("Unsupported OS!");
- if(OperatingSystem.IsMacOS())
+ foreach (var (triple, rid) in targets)
{
- //Compile MacOS libraries
- InheritedShell("cargo build --release --target=aarch64-apple-darwin", WgpuPath).AssertZeroExitCode();
- InheritedShell("cargo build --release --target=x86_64-apple-darwin", WgpuPath).AssertZeroExitCode();
+ // Cross-compiling to these targets on linux-x64 will fail if a proper linker is not set.
+ var linker = rid switch
+ {
+ "linux-arm" => "arm-linux-gnueabihf-gcc",
+ "linux-arm64" => "aarch64-linux-gnu-gcc",
+ _ => null,
+ };
+
+ if (linker != null)
+ linker = $" --config \"target.{triple}.linker = '{linker}'\"";
+
+ InheritedShell($"cargo build --release --target {triple}{linker}", WgpuPath).AssertZeroExitCode();
- CopyFile(target / "x86_64-apple-darwin" / "release" / "libwgpu_native.dylib", runtimes / "osx-x64" / "native" / "libwgpu_native.dylib", FileExistsPolicy.Overwrite);
- CopyFile(target / "aarch64-apple-darwin" / "release" / "libwgpu_native.dylib", runtimes / "osx-arm64" / "native" / "libwgpu_native.dylib", FileExistsPolicy.Overwrite);
+ CopyFile(target / triple / "release" / library, runtimes / rid / "native" / library, FileExistsPolicy.Overwrite);
}
PrUpdatedNativeBinary("Wgpu");
}
)
);
-}
\ No newline at end of file
+}
diff --git a/build/submodules/openal-soft b/build/submodules/openal-soft
new file mode 160000
index 0000000000..d3875f333f
--- /dev/null
+++ b/build/submodules/openal-soft
@@ -0,0 +1 @@
+Subproject commit d3875f333fb6abe2f39d82caca329414871ae53b
diff --git a/src/Microsoft/Vkd3dCompiler/build.zig b/src/Microsoft/Vkd3dCompiler/build.zig
index 358a0b6ea6..75fa911d02 100644
--- a/src/Microsoft/Vkd3dCompiler/build.zig
+++ b/src/Microsoft/Vkd3dCompiler/build.zig
@@ -14,8 +14,7 @@ pub fn build(b: *std.Build) void {
.optimize = optimize,
});
- //In ReleaseSmall builds, strip the code
- if (optimize == .ReleaseSmall)
+ if (optimize != .Debug)
vkd3d_compiler.root_module.strip = true;
vkd3d_compiler.addLibraryPath(.{ .path = "." });
diff --git a/src/Native/Silk.NET.Assimp.Native/Silk.NET.Assimp.Native.csproj b/src/Native/Silk.NET.Assimp.Native/Silk.NET.Assimp.Native.csproj
index 52195a9276..d19cbd65b4 100644
--- a/src/Native/Silk.NET.Assimp.Native/Silk.NET.Assimp.Native.csproj
+++ b/src/Native/Silk.NET.Assimp.Native/Silk.NET.Assimp.Native.csproj
@@ -20,12 +20,15 @@
false
true
-
+
+
+
-
+
+
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/linux-arm/native/libassimp.so.5 b/src/Native/Silk.NET.Assimp.Native/runtimes/linux-arm/native/libassimp.so.5
new file mode 100755
index 0000000000..4365d13a7d
Binary files /dev/null and b/src/Native/Silk.NET.Assimp.Native/runtimes/linux-arm/native/libassimp.so.5 differ
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/linux-arm64/native/libassimp.so.5 b/src/Native/Silk.NET.Assimp.Native/runtimes/linux-arm64/native/libassimp.so.5
new file mode 100755
index 0000000000..d17aa08476
Binary files /dev/null and b/src/Native/Silk.NET.Assimp.Native/runtimes/linux-arm64/native/libassimp.so.5 differ
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/linux-x64/native/libassimp.so.5 b/src/Native/Silk.NET.Assimp.Native/runtimes/linux-x64/native/libassimp.so.5
index a339aa6768..fba12e389a 100755
Binary files a/src/Native/Silk.NET.Assimp.Native/runtimes/linux-x64/native/libassimp.so.5 and b/src/Native/Silk.NET.Assimp.Native/runtimes/linux-x64/native/libassimp.so.5 differ
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/osx-arm64/native/libassimp.5.dylib b/src/Native/Silk.NET.Assimp.Native/runtimes/osx-arm64/native/libassimp.5.dylib
index 30e7710565..ea3f018a5b 100755
Binary files a/src/Native/Silk.NET.Assimp.Native/runtimes/osx-arm64/native/libassimp.5.dylib and b/src/Native/Silk.NET.Assimp.Native/runtimes/osx-arm64/native/libassimp.5.dylib differ
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/osx-x64/native/libassimp.5.dylib b/src/Native/Silk.NET.Assimp.Native/runtimes/osx-x64/native/libassimp.5.dylib
index 8e5d10364c..c66942b1a7 100755
Binary files a/src/Native/Silk.NET.Assimp.Native/runtimes/osx-x64/native/libassimp.5.dylib and b/src/Native/Silk.NET.Assimp.Native/runtimes/osx-x64/native/libassimp.5.dylib differ
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/win-arm64/native/Assimp64.dll b/src/Native/Silk.NET.Assimp.Native/runtimes/win-arm64/native/Assimp64.dll
new file mode 100644
index 0000000000..11d26b9f8a
Binary files /dev/null and b/src/Native/Silk.NET.Assimp.Native/runtimes/win-arm64/native/Assimp64.dll differ
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/win-x64/native/Assimp64.dll b/src/Native/Silk.NET.Assimp.Native/runtimes/win-x64/native/Assimp64.dll
index c7ca06f567..dea374ee0e 100644
Binary files a/src/Native/Silk.NET.Assimp.Native/runtimes/win-x64/native/Assimp64.dll and b/src/Native/Silk.NET.Assimp.Native/runtimes/win-x64/native/Assimp64.dll differ
diff --git a/src/Native/Silk.NET.Assimp.Native/runtimes/win-x86/native/Assimp32.dll b/src/Native/Silk.NET.Assimp.Native/runtimes/win-x86/native/Assimp32.dll
index cc0fc3813f..c45327050b 100644
Binary files a/src/Native/Silk.NET.Assimp.Native/runtimes/win-x86/native/Assimp32.dll and b/src/Native/Silk.NET.Assimp.Native/runtimes/win-x86/native/Assimp32.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d10core.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d10core.dll
index 18c0b3ca73..581b4c82d5 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d10core.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d10core.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d11.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d11.dll
index 9fe2d50f36..457e17165a 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d11.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d11.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d9.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d9.dll
index 8d7c1cf967..fa3dca14ad 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d9.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-d3d9.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-dxgi.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-dxgi.dll
index 922174c5c7..281bd6f4fd 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-dxgi.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x64/native/dxvk-dxgi.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d10core.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d10core.dll
index c415620e4d..5895079dbf 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d10core.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d10core.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d11.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d11.dll
index 4b3a004478..c26d057e70 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d11.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d11.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d9.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d9.dll
index ad590e0182..76dfc4b465 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d9.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-d3d9.dll differ
diff --git a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-dxgi.dll b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-dxgi.dll
index 61de692704..2bb3aa2fdf 100755
Binary files a/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-dxgi.dll and b/src/Native/Silk.NET.DXVK.Native/runtimes/win-x86/native/dxvk-dxgi.dll differ
diff --git a/src/Native/Silk.NET.GLFW.Native/Silk.NET.GLFW.Native.csproj b/src/Native/Silk.NET.GLFW.Native/Silk.NET.GLFW.Native.csproj
index 1f89567c9d..0e29cc5055 100644
--- a/src/Native/Silk.NET.GLFW.Native/Silk.NET.GLFW.Native.csproj
+++ b/src/Native/Silk.NET.GLFW.Native/Silk.NET.GLFW.Native.csproj
@@ -23,11 +23,13 @@
+
+
-
-
+
+
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/linux-arm/native/libglfw.so.3 b/src/Native/Silk.NET.GLFW.Native/runtimes/linux-arm/native/libglfw.so.3
new file mode 100755
index 0000000000..8ec7efeda0
Binary files /dev/null and b/src/Native/Silk.NET.GLFW.Native/runtimes/linux-arm/native/libglfw.so.3 differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/linux-arm64/native/libglfw.so.3 b/src/Native/Silk.NET.GLFW.Native/runtimes/linux-arm64/native/libglfw.so.3
new file mode 100755
index 0000000000..a72f52200b
Binary files /dev/null and b/src/Native/Silk.NET.GLFW.Native/runtimes/linux-arm64/native/libglfw.so.3 differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/linux-x64/native/libglfw.so b/src/Native/Silk.NET.GLFW.Native/runtimes/linux-x64/native/libglfw.so
deleted file mode 100755
index e9b7812569..0000000000
Binary files a/src/Native/Silk.NET.GLFW.Native/runtimes/linux-x64/native/libglfw.so and /dev/null differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/linux-x64/native/libglfw.so.3 b/src/Native/Silk.NET.GLFW.Native/runtimes/linux-x64/native/libglfw.so.3
index 0d8d28d429..34f4815029 100755
Binary files a/src/Native/Silk.NET.GLFW.Native/runtimes/linux-x64/native/libglfw.so.3 and b/src/Native/Silk.NET.GLFW.Native/runtimes/linux-x64/native/libglfw.so.3 differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/osx-arm64/native/libglfw.3.dylib b/src/Native/Silk.NET.GLFW.Native/runtimes/osx-arm64/native/libglfw.3.dylib
index 9b365407b3..8ace72607c 100755
Binary files a/src/Native/Silk.NET.GLFW.Native/runtimes/osx-arm64/native/libglfw.3.dylib and b/src/Native/Silk.NET.GLFW.Native/runtimes/osx-arm64/native/libglfw.3.dylib differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/osx-x64/native/libglfw.3.dylib b/src/Native/Silk.NET.GLFW.Native/runtimes/osx-x64/native/libglfw.3.dylib
index 08a93c13fa..369b2d2a4d 100755
Binary files a/src/Native/Silk.NET.GLFW.Native/runtimes/osx-x64/native/libglfw.3.dylib and b/src/Native/Silk.NET.GLFW.Native/runtimes/osx-x64/native/libglfw.3.dylib differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/win-arm64/native/glfw3.dll b/src/Native/Silk.NET.GLFW.Native/runtimes/win-arm64/native/glfw3.dll
index b82847f860..00b8c67a13 100644
Binary files a/src/Native/Silk.NET.GLFW.Native/runtimes/win-arm64/native/glfw3.dll and b/src/Native/Silk.NET.GLFW.Native/runtimes/win-arm64/native/glfw3.dll differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/win-x64/native/glfw3.dll b/src/Native/Silk.NET.GLFW.Native/runtimes/win-x64/native/glfw3.dll
index c72b0b9e22..d46bfba7d3 100644
Binary files a/src/Native/Silk.NET.GLFW.Native/runtimes/win-x64/native/glfw3.dll and b/src/Native/Silk.NET.GLFW.Native/runtimes/win-x64/native/glfw3.dll differ
diff --git a/src/Native/Silk.NET.GLFW.Native/runtimes/win-x86/native/glfw3.dll b/src/Native/Silk.NET.GLFW.Native/runtimes/win-x86/native/glfw3.dll
index a459ef0e82..6e71a2a463 100644
Binary files a/src/Native/Silk.NET.GLFW.Native/runtimes/win-x86/native/glfw3.dll and b/src/Native/Silk.NET.GLFW.Native/runtimes/win-x86/native/glfw3.dll differ
diff --git a/src/Native/Silk.NET.MoltenVK.Native/runtimes/iossimulator/native/libMoltenVK.a b/src/Native/Silk.NET.MoltenVK.Native/runtimes/iossimulator/native/libMoltenVK.a
index 1423a2a96f..418eeda742 100644
Binary files a/src/Native/Silk.NET.MoltenVK.Native/runtimes/iossimulator/native/libMoltenVK.a and b/src/Native/Silk.NET.MoltenVK.Native/runtimes/iossimulator/native/libMoltenVK.a differ
diff --git a/src/Native/Silk.NET.MoltenVK.Native/runtimes/maccatalyst/native/libMoltenVK.a b/src/Native/Silk.NET.MoltenVK.Native/runtimes/maccatalyst/native/libMoltenVK.a
index 66fc61f73c..8ec81d2a78 100644
Binary files a/src/Native/Silk.NET.MoltenVK.Native/runtimes/maccatalyst/native/libMoltenVK.a and b/src/Native/Silk.NET.MoltenVK.Native/runtimes/maccatalyst/native/libMoltenVK.a differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/Silk.NET.OpenAL.Soft.Native.csproj b/src/Native/Silk.NET.OpenAL.Soft.Native/Silk.NET.OpenAL.Soft.Native.csproj
index 9c47a4aba0..f04889ff0f 100644
--- a/src/Native/Silk.NET.OpenAL.Soft.Native/Silk.NET.OpenAL.Soft.Native.csproj
+++ b/src/Native/Silk.NET.OpenAL.Soft.Native/Silk.NET.OpenAL.Soft.Native.csproj
@@ -22,8 +22,12 @@
+
+
+
+
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-arm/native/libopenal.so b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-arm/native/libopenal.so
new file mode 100755
index 0000000000..900b919fce
Binary files /dev/null and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-arm/native/libopenal.so differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-arm64/native/libopenal.so b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-arm64/native/libopenal.so
new file mode 100755
index 0000000000..40227b2224
Binary files /dev/null and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-arm64/native/libopenal.so differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-x64/native/libopenal.so b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-x64/native/libopenal.so
old mode 100644
new mode 100755
index 62b72046ae..773a355d48
Binary files a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-x64/native/libopenal.so and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/linux-x64/native/libopenal.so differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/osx-arm64/native/libopenal.dylib b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/osx-arm64/native/libopenal.dylib
new file mode 100755
index 0000000000..1ac3b12619
Binary files /dev/null and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/osx-arm64/native/libopenal.dylib differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/osx-x64/native/libopenal.dylib b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/osx-x64/native/libopenal.dylib
old mode 100644
new mode 100755
index 965db0a8f1..ed0223f192
Binary files a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/osx-x64/native/libopenal.dylib and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/osx-x64/native/libopenal.dylib differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-arm64/native/soft_oal.dll b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-arm64/native/soft_oal.dll
new file mode 100644
index 0000000000..a876a92b2b
Binary files /dev/null and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-arm64/native/soft_oal.dll differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x64/native/soft_oal.dll b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x64/native/soft_oal.dll
index 71f62596f4..82e6aebac2 100644
Binary files a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x64/native/soft_oal.dll and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x64/native/soft_oal.dll differ
diff --git a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x86/native/soft_oal.dll b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x86/native/soft_oal.dll
index b6eee871a4..00cca5bdd0 100644
Binary files a/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x86/native/soft_oal.dll and b/src/Native/Silk.NET.OpenAL.Soft.Native/runtimes/win-x86/native/soft_oal.dll differ
diff --git a/src/Native/Silk.NET.SDL.Native/Silk.NET.SDL.Native.csproj b/src/Native/Silk.NET.SDL.Native/Silk.NET.SDL.Native.csproj
index 38b06f2a05..efd875c269 100644
--- a/src/Native/Silk.NET.SDL.Native/Silk.NET.SDL.Native.csproj
+++ b/src/Native/Silk.NET.SDL.Native/Silk.NET.SDL.Native.csproj
@@ -24,16 +24,17 @@
+
+
+
+
-
-
-
-
-
+
+
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/ios/native/libSDL2.a b/src/Native/Silk.NET.SDL.Native/runtimes/ios/native/libSDL2.a
index 58ad4753d0..0253fe1bdf 100644
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/ios/native/libSDL2.a and b/src/Native/Silk.NET.SDL.Native/runtimes/ios/native/libSDL2.a differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/iossimulator/native/libSDL2.a b/src/Native/Silk.NET.SDL.Native/runtimes/iossimulator/native/libSDL2.a
index 228698405f..66f1b4f15f 100644
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/iossimulator/native/libSDL2.a and b/src/Native/Silk.NET.SDL.Native/runtimes/iossimulator/native/libSDL2.a differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/linux-arm/native/libSDL2-2.0.so b/src/Native/Silk.NET.SDL.Native/runtimes/linux-arm/native/libSDL2-2.0.so
new file mode 100755
index 0000000000..20016fa718
Binary files /dev/null and b/src/Native/Silk.NET.SDL.Native/runtimes/linux-arm/native/libSDL2-2.0.so differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/linux-arm64/native/libSDL2-2.0.so b/src/Native/Silk.NET.SDL.Native/runtimes/linux-arm64/native/libSDL2-2.0.so
new file mode 100755
index 0000000000..49f77d7c83
Binary files /dev/null and b/src/Native/Silk.NET.SDL.Native/runtimes/linux-arm64/native/libSDL2-2.0.so differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/linux-x64/native/libSDL2-2.0.so b/src/Native/Silk.NET.SDL.Native/runtimes/linux-x64/native/libSDL2-2.0.so
index 32f1a70456..137fe52542 100755
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/linux-x64/native/libSDL2-2.0.so and b/src/Native/Silk.NET.SDL.Native/runtimes/linux-x64/native/libSDL2-2.0.so differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/linux-x86/native/libSDL2-2.0.so b/src/Native/Silk.NET.SDL.Native/runtimes/linux-x86/native/libSDL2-2.0.so
deleted file mode 100755
index f435a5399c..0000000000
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/linux-x86/native/libSDL2-2.0.so and /dev/null differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/osx/native/libSDL2-2.0.dylib b/src/Native/Silk.NET.SDL.Native/runtimes/osx/native/libSDL2-2.0.dylib
index bb281120e4..ce5f4a20d3 100755
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/osx/native/libSDL2-2.0.dylib and b/src/Native/Silk.NET.SDL.Native/runtimes/osx/native/libSDL2-2.0.dylib differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/tvos/native/libSDL2.a b/src/Native/Silk.NET.SDL.Native/runtimes/tvos/native/libSDL2.a
index 0d46a82c33..4efcde89c1 100644
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/tvos/native/libSDL2.a and b/src/Native/Silk.NET.SDL.Native/runtimes/tvos/native/libSDL2.a differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/tvossimulator/native/libSDL2.a b/src/Native/Silk.NET.SDL.Native/runtimes/tvossimulator/native/libSDL2.a
index 13118114c5..eb0bf4ec2d 100644
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/tvossimulator/native/libSDL2.a and b/src/Native/Silk.NET.SDL.Native/runtimes/tvossimulator/native/libSDL2.a differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/win-arm64/native/SDL2.dll b/src/Native/Silk.NET.SDL.Native/runtimes/win-arm64/native/SDL2.dll
index 1422dd8517..1edc38f3ae 100644
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/win-arm64/native/SDL2.dll and b/src/Native/Silk.NET.SDL.Native/runtimes/win-arm64/native/SDL2.dll differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/win-x64/native/SDL2.dll b/src/Native/Silk.NET.SDL.Native/runtimes/win-x64/native/SDL2.dll
index ce187995e6..cacc0ac4b3 100644
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/win-x64/native/SDL2.dll and b/src/Native/Silk.NET.SDL.Native/runtimes/win-x64/native/SDL2.dll differ
diff --git a/src/Native/Silk.NET.SDL.Native/runtimes/win-x86/native/SDL2.dll b/src/Native/Silk.NET.SDL.Native/runtimes/win-x86/native/SDL2.dll
index b7dcf8ac7e..000dc24ae6 100644
Binary files a/src/Native/Silk.NET.SDL.Native/runtimes/win-x86/native/SDL2.dll and b/src/Native/Silk.NET.SDL.Native/runtimes/win-x86/native/SDL2.dll differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/Silk.NET.SPIRV.Cross.Native.csproj b/src/Native/Silk.NET.SPIRV.Cross.Native/Silk.NET.SPIRV.Cross.Native.csproj
index ce149de9dc..a1d740c432 100644
--- a/src/Native/Silk.NET.SPIRV.Cross.Native/Silk.NET.SPIRV.Cross.Native.csproj
+++ b/src/Native/Silk.NET.SPIRV.Cross.Native/Silk.NET.SPIRV.Cross.Native.csproj
@@ -23,21 +23,16 @@
-
-
-
-
-
+
+
+
-
+
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm/native/libspirv-cross.so b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm/native/libspirv-cross.so
new file mode 100755
index 0000000000..1efc969215
Binary files /dev/null and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm/native/libspirv-cross.so differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so
index 15b9238dde..42f80e005f 100755
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so
index e5f9cd3ec5..3c2de430eb 100755
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x86/native/libspirv-cross.so b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x86/native/libspirv-cross.so
deleted file mode 100755
index 95427c8e7a..0000000000
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x86/native/libspirv-cross.so and /dev/null differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib
index d329b2a65d..d2ee295818 100755
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib
index 17c08e5a55..6e17d6713e 100755
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll
index 71cf2cd2e1..41714827db 100755
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll
index 17b8679004..19c98c459e 100755
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll differ
diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll
index 1e6b3bd967..c14cfd9395 100755
Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/Silk.NET.SPIRV.Reflect.Native.csproj b/src/Native/Silk.NET.SPIRV.Reflect.Native/Silk.NET.SPIRV.Reflect.Native.csproj
index 4af5b8298c..0adac48398 100644
--- a/src/Native/Silk.NET.SPIRV.Reflect.Native/Silk.NET.SPIRV.Reflect.Native.csproj
+++ b/src/Native/Silk.NET.SPIRV.Reflect.Native/Silk.NET.SPIRV.Reflect.Native.csproj
@@ -23,21 +23,16 @@
-
-
-
-
-
+
+
+
-
+
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm/native/libspirv-reflect.so b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm/native/libspirv-reflect.so
new file mode 100755
index 0000000000..024193a048
Binary files /dev/null and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm/native/libspirv-reflect.so differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so
index 6e898e67a1..a4435bb073 100755
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so
index 9aa6584f44..6b4ebf7334 100755
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x86/native/libspirv-reflect.so b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x86/native/libspirv-reflect.so
deleted file mode 100755
index 5f92ca22b2..0000000000
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x86/native/libspirv-reflect.so and /dev/null differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib
index d3a6936c59..6c5ae0f776 100755
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib
index 9809389513..46cfcbd332 100755
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll
index 09c9595fb9..b88d14b887 100755
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll
index 01c06f5517..fb7e9af6b7 100755
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll differ
diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll
index 28bbb9281e..71da0d705a 100755
Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/Silk.NET.Shaderc.Native.csproj b/src/Native/Silk.NET.Shaderc.Native/Silk.NET.Shaderc.Native.csproj
index 2e6494890a..5504c5f210 100644
--- a/src/Native/Silk.NET.Shaderc.Native/Silk.NET.Shaderc.Native.csproj
+++ b/src/Native/Silk.NET.Shaderc.Native/Silk.NET.Shaderc.Native.csproj
@@ -23,21 +23,16 @@
-
-
-
-
-
+
+
+
-
+
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm/native/libshaderc_shared.so b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm/native/libshaderc_shared.so
new file mode 100755
index 0000000000..6395139bbd
Binary files /dev/null and b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm/native/libshaderc_shared.so differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so
index 1891c2a4d0..538f6606c4 100755
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so and b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so
index 4753831e51..faf42e0954 100755
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so and b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x86/native/libshaderc_shared.so b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x86/native/libshaderc_shared.so
deleted file mode 100755
index 8aaafe98ae..0000000000
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x86/native/libshaderc_shared.so and /dev/null differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib
index aa77991a9d..f2bfdf9077 100755
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib and b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib
index d71343fc9e..370541e13e 100755
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib and b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll
index 9a281702b1..e80dbf52b4 100755
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll and b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll
index 40fe84eff7..56de290e30 100755
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll and b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll differ
diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll
index 439f9292f4..89849e5b42 100755
Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll and b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll differ
diff --git a/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so b/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so
index 51c68c2c0a..3debd0ce52 100755
Binary files a/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so and b/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so differ
diff --git a/src/Native/Silk.NET.Vulkan.Loader.Native/Silk.NET.Vulkan.Loader.Native.csproj b/src/Native/Silk.NET.Vulkan.Loader.Native/Silk.NET.Vulkan.Loader.Native.csproj
index c65e2e3cbd..4ab9b2f9bd 100644
--- a/src/Native/Silk.NET.Vulkan.Loader.Native/Silk.NET.Vulkan.Loader.Native.csproj
+++ b/src/Native/Silk.NET.Vulkan.Loader.Native/Silk.NET.Vulkan.Loader.Native.csproj
@@ -18,7 +18,9 @@
+
+
diff --git a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/linux-arm64/native/libvulkan.so b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/linux-arm64/native/libvulkan.so
new file mode 100755
index 0000000000..580a248fd1
Binary files /dev/null and b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/linux-arm64/native/libvulkan.so differ
diff --git a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/linux-x64/native/libvulkan.so b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/linux-x64/native/libvulkan.so
index 1a3a57e86d..1e0e82b2a1 100755
Binary files a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/linux-x64/native/libvulkan.so and b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/linux-x64/native/libvulkan.so differ
diff --git a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/osx-arm64/native/libvulkan.dylib b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/osx-arm64/native/libvulkan.dylib
new file mode 100755
index 0000000000..bbca3258fb
Binary files /dev/null and b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/osx-arm64/native/libvulkan.dylib differ
diff --git a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/osx-x64/native/libvulkan.dylib b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/osx-x64/native/libvulkan.dylib
index a6449273c2..ad0cb3a771 100755
Binary files a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/osx-x64/native/libvulkan.dylib and b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/osx-x64/native/libvulkan.dylib differ
diff --git a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x64/native/vulkan-1.dll b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x64/native/vulkan-1.dll
index 269dc902df..14929d50be 100644
Binary files a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x64/native/vulkan-1.dll and b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x64/native/vulkan-1.dll differ
diff --git a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x86/native/vulkan-1.dll b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x86/native/vulkan-1.dll
index 269dc902df..bcabe4b901 100644
Binary files a/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x86/native/vulkan-1.dll and b/src/Native/Silk.NET.Vulkan.Loader.Native/runtimes/win-x86/native/vulkan-1.dll differ
diff --git a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-arm/native/libvk_swiftshader.so b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-arm/native/libvk_swiftshader.so
new file mode 100755
index 0000000000..96bc920f40
Binary files /dev/null and b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-arm/native/libvk_swiftshader.so differ
diff --git a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-arm64/native/libvk_swiftshader.so b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-arm64/native/libvk_swiftshader.so
new file mode 100755
index 0000000000..6ed1c1aa20
Binary files /dev/null and b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-arm64/native/libvk_swiftshader.so differ
diff --git a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-x64/native/libvk_swiftshader.so b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-x64/native/libvk_swiftshader.so
index 39d5f64715..1f24952f08 100755
Binary files a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-x64/native/libvk_swiftshader.so and b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/linux-x64/native/libvk_swiftshader.so differ
diff --git a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/osx-arm64/native/libvk_swiftshader.dylib b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/osx-arm64/native/libvk_swiftshader.dylib
new file mode 100755
index 0000000000..bcde6a54bb
Binary files /dev/null and b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/osx-arm64/native/libvk_swiftshader.dylib differ
diff --git a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/osx-x64/native/libvk_swiftshader.dylib b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/osx-x64/native/libvk_swiftshader.dylib
index 98697f4670..4b5f440262 100755
Binary files a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/osx-x64/native/libvk_swiftshader.dylib and b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/osx-x64/native/libvk_swiftshader.dylib differ
diff --git a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x64/native/vk_swiftshader.dll b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x64/native/vk_swiftshader.dll
index 212a4acd8f..87e731359c 100644
Binary files a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x64/native/vk_swiftshader.dll and b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x64/native/vk_swiftshader.dll differ
diff --git a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x86/native/vk_swiftshader.dll b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x86/native/vk_swiftshader.dll
index 212a4acd8f..ea060e67fd 100644
Binary files a/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x86/native/vk_swiftshader.dll and b/src/Native/Silk.NET.Vulkan.SwiftShader.Native/runtimes/win-x86/native/vk_swiftshader.dll differ
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/Silk.NET.WebGPU.Native.WGPU.csproj b/src/Native/Silk.NET.WebGPU.Native.WGPU/Silk.NET.WebGPU.Native.WGPU.csproj
index 1da340b171..06948af956 100644
--- a/src/Native/Silk.NET.WebGPU.Native.WGPU/Silk.NET.WebGPU.Native.WGPU.csproj
+++ b/src/Native/Silk.NET.WebGPU.Native.WGPU/Silk.NET.WebGPU.Native.WGPU.csproj
@@ -22,13 +22,14 @@
-
+
+
-
-
-
+
+
+
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-x86/native/libwgpu_native.so b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-arm/native/libwgpu_native.so
similarity index 53%
rename from src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-x86/native/libwgpu_native.so
rename to src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-arm/native/libwgpu_native.so
index 515c95ad8e..f2adadedb1 100755
Binary files a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-x86/native/libwgpu_native.so and b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-arm/native/libwgpu_native.so differ
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-arm64/native/libwgpu_native.so b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-arm64/native/libwgpu_native.so
new file mode 100755
index 0000000000..419d65de57
Binary files /dev/null and b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/linux-arm64/native/libwgpu_native.so differ
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-arm64/native/libwgpu_native.dylib b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-arm64/native/libwgpu_native.dylib
index 037e68b4da..7c226399d9 100755
Binary files a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-arm64/native/libwgpu_native.dylib and b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-arm64/native/libwgpu_native.dylib differ
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-x64/native/libwgpu_native.dylib b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-x64/native/libwgpu_native.dylib
index 4ebe0186ea..1b259fd306 100755
Binary files a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-x64/native/libwgpu_native.dylib and b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/osx-x64/native/libwgpu_native.dylib differ
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-arm64/native/wgpu_native.dll b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-arm64/native/wgpu_native.dll
index 6570931d7b..13aac20db8 100644
Binary files a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-arm64/native/wgpu_native.dll and b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-arm64/native/wgpu_native.dll differ
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x64/native/wgpu_native.dll b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x64/native/wgpu_native.dll
index c370c42125..6778ccba71 100644
Binary files a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x64/native/wgpu_native.dll and b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x64/native/wgpu_native.dll differ
diff --git a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x86/native/wgpu_native.dll b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x86/native/wgpu_native.dll
index b34378bbe7..16e67ca083 100644
Binary files a/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x86/native/wgpu_native.dll and b/src/Native/Silk.NET.WebGPU.Native.WGPU/runtimes/win-x86/native/wgpu_native.dll differ