Compare commits

...

37 commits

Author SHA1 Message Date
Mary Guillemard d50837c46b
Update version to 2.30.0
Forgot to increment it before release oh well...
2024-02-06 23:39:55 +01:00
github-actions[bot] caa502a393
Update linux-arm64 SDL binaries (#158)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:19:34 +01:00
github-actions[bot] 71ec99d676
Update osx-arm64 SDL binaries (#157)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:19:27 +01:00
github-actions[bot] 7389c35176
Update osx-x64 SDL binaries (#156)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:19:20 +01:00
github-actions[bot] 14e19b5164
Update win-x64 SDL binaries (#155)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:47 +01:00
github-actions[bot] 038059ecc9
Update win-arm64 SDL binaries (#154)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:41 +01:00
github-actions[bot] b42777f4d3
Update iOS SDL binaries (#153)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:35 +01:00
github-actions[bot] 82c0c38477
Update linux-x64 SDL binaries (#152)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:29 +01:00
Mary Guillemard c66a752bf5 Add linux-arm64 in csproj
Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 22:48:29 +01:00
Mary Guillemard 2402c1a0db Enable linux-arm64 in CI
Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 20:52:14 +01:00
Mary Guillemard 275e67ad11 Move build operation to a bash script
This greatly simplify the action and prepare for building for other archs.

Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 20:10:42 +01:00
Mary Guillemard 70a111cbb6 Respect workflow argument for iOS
Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 19:41:53 +01:00
TSRBerry 8f286bb048
Update version to 2.28.3 2023-10-20 16:16:33 +02:00
TSR Berry e96d39d94b
Merge remote-tracking branches 'origin/update-ios-binaries', 'origin/update-linux-x64-binaries', 'origin/update-win-x64-binaries', 'origin/update-win-arm64-binaries', 'origin/update-osx-arm64-binaries' and 'origin/update-osx-x64-binaries' 2023-09-23 20:01:28 +02:00
TSR Berry a389f319ce
Add note about commit sha to workflow input 2023-09-23 19:59:24 +02:00
TSRBerry ce6acac60e Update osx-x64 SDL binaries 2023-09-23 17:57:58 +00:00
TSRBerry 3547f466d7 Update osx-arm64 SDL binaries 2023-09-23 17:57:49 +00:00
TSRBerry 4251b252ed Update iOS SDL binaries 2023-09-23 17:57:22 +00:00
TSRBerry 7f231ea460 Update win-arm64 SDL binaries 2023-09-23 17:56:41 +00:00
TSRBerry 802dd6f15a Update win-x64 SDL binaries 2023-09-23 17:56:35 +00:00
TSRBerry 68ab08e264 Update linux-x64 SDL binaries 2023-09-23 17:55:34 +00:00
TSR Berry df777874bc
Update actions 2023-09-23 19:46:13 +02:00
TSR Berry 232018f03e
Add dependabot.yml 2023-09-23 19:45:52 +02:00
github-actions[bot] 95f9c5c73a
Update osx-x64 SDL binaries (#145)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:39 +02:00
github-actions[bot] 077f5e5171
Update win-x64 SDL binaries (#144)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:31 +02:00
github-actions[bot] 6fa4edcdc4
Update osx-arm64 SDL binaries (#143)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:23 +02:00
github-actions[bot] aa545e727a
Update win-arm64 SDL binaries (#142)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:14 +02:00
github-actions[bot] f4681ebf95
Update linux-x64 SDL binaries (#141)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:18:25 +02:00
github-actions[bot] 161373c455
Update iOS SDL binaries (#140)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:18:16 +02:00
Mary 4e470dba41 Update metadata to 2.28.1 2023-07-14 09:31:36 +02:00
TSR Berry 9af6bb8fe8
Update metadata to 2.28.0 2023-07-05 15:50:46 +02:00
TSRBerry 172acaa08d
Update win-x64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry 7ca43ee88c
Update win-arm64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry 497d929939
Update osx-x64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry 54cb2e08c7
Update osx-arm64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry ce3bfab43c
Update linux-x64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry 6bd29ff214
Update iOS SDL binaries 2023-07-05 15:50:45 +02:00
16 changed files with 188 additions and 94 deletions

9
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,9 @@
version: 2
updates:
- directory: /
package-ecosystem: github-actions
reviewers:
- marysaka
- TSRBerry
schedule:
interval: daily

View file

@ -3,9 +3,8 @@ on:
workflow_dispatch:
inputs:
rev:
description: 'Ryujinx/SDL commit to build'
required: false
default: 'master'
description: 'Ryujinx/SDL commit to build (this has to be a full commit sha, otherwise it will not work)'
required: true
# schedule:
# - cron: '0 0 * * *'
env:
@ -19,97 +18,28 @@ jobs:
fail-fast: false
matrix:
platform:
- { name: win-x64, os: windows-latest, flags: -A x64 }
#- { name: win-x86, os: windows-latest, flags: -A Win32 }
- { name: win-arm64, os: windows-latest, flags: -A ARM64 }
- { name: linux-x64, os: ubuntu-20.04, flags: -GNinja, target_apt_arch: ":amd64" }
#- { name: linux-x86, os: ubuntu-20.04, flags: -GNinja, cmake_configure_env: CFLAGS=-m32 CXXFLAGS=-m32, target_apt_arch: ":i386" }
- { name: osx-x64, os: macos-latest, flags: -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="11.0" }
- { name: osx-arm64, os: macos-latest, flags: -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="11.0" }
- { name: win-x64, os: windows-latest, arch: x64 }
# - { name: win-x86, os: windows-latest, arch: Win32 }
- { name: win-arm64, os: windows-latest, arch: ARM64 }
- { name: linux-x64, os: ubuntu-20.04, arch: amd64 }
# - { name: linux-x86, os: ubuntu-20.04, arch: i386 }
- { name: linux-arm64, os: ubuntu-20.04, arch: arm64 }
- { name: osx-x64, os: macos-latest, arch: x86_64 }
- { name: osx-arm64, os: macos-latest, arch: arm64 }
steps:
- name: Setup Linux dependencies
- name: Setup qemu static
uses: docker/setup-qemu-action@v3
if: runner.os == 'Linux'
run: |
if [[ ${{ matrix.platform.target_apt_arch }} == :i386 ]]; then
sudo dpkg --add-architecture i386
fi
sudo apt-get update -y -qq
if [[ ${{ matrix.platform.target_apt_arch }} == :i386 ]]; then
# Workaround GitHub's ubuntu-20.04 image issue <https://github.com/actions/virtual-environments/issues/4589>
sudo apt-get install -y --allow-downgrades libpcre2-8-0=10.34-7
fi
sudo apt-get install -y \
gcc-multilib \
g++-multilib \
cmake \
ninja-build \
wayland-scanner++ \
wayland-protocols \
pkg-config${{ matrix.platform.target_apt_arch }} \
libasound2-dev${{ matrix.platform.target_apt_arch }} \
libdbus-1-dev${{ matrix.platform.target_apt_arch }} \
libegl1-mesa-dev${{ matrix.platform.target_apt_arch }} \
libgl1-mesa-dev${{ matrix.platform.target_apt_arch }} \
libgles2-mesa-dev${{ matrix.platform.target_apt_arch }} \
libglu1-mesa-dev${{ matrix.platform.target_apt_arch }} \
libibus-1.0-dev${{ matrix.platform.target_apt_arch }} \
libpulse-dev${{ matrix.platform.target_apt_arch }} \
libsdl2-2.0-0${{ matrix.platform.target_apt_arch }} \
libsndio-dev${{ matrix.platform.target_apt_arch }} \
libudev-dev${{ matrix.platform.target_apt_arch }} \
libwayland-dev${{ matrix.platform.target_apt_arch }} \
libx11-dev${{ matrix.platform.target_apt_arch }} \
libxcursor-dev${{ matrix.platform.target_apt_arch }} \
libxext-dev${{ matrix.platform.target_apt_arch }} \
libxi-dev${{ matrix.platform.target_apt_arch }} \
libxinerama-dev${{ matrix.platform.target_apt_arch }} \
libxkbcommon-dev${{ matrix.platform.target_apt_arch }} \
libxrandr-dev${{ matrix.platform.target_apt_arch }} \
libxss-dev${{ matrix.platform.target_apt_arch }} \
libxt-dev${{ matrix.platform.target_apt_arch }} \
libxv-dev${{ matrix.platform.target_apt_arch }} \
libxxf86vm-dev${{ matrix.platform.target_apt_arch }} \
libdrm-dev${{ matrix.platform.target_apt_arch }} \
libgbm-dev${{ matrix.platform.target_apt_arch }} \
libpulse-dev${{ matrix.platform.target_apt_arch }} \
libhidapi-dev${{ matrix.platform.target_apt_arch }} \
libwayland-client++0$ \
libwayland-cursor++0$ \
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
repository: Ryujinx/SDL
ref: ${{ github.event.inputs.rev }}
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
path: 'SDL2-CS'
- name: Configure CMake
run: ${{ matrix.platform.cmake_configure_env }} cmake -B build ${{ matrix.platform.flags }} -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSDL_SHARED_ENABLED_BY_DEFAULT=ON -DSDL_STATIC_ENABLED_BY_DEFAULT=ON
- name: Build
run: cmake --build build/ --config Release
- name: Install (Windows)
run: cmake --install build/ --prefix install_output --config Release
if: runner.os == 'Windows'
- name: Install
run: sudo cmake --install build/ --prefix install_output --config Release
if: runner.os != 'Windows'
- name: Prepare release directory (Windows)
run: mkdir -Force SDL2-CS/native/${{ matrix.platform.name }}
if: runner.os == 'Windows'
- name: Prepare release directory
run: mkdir -p SDL2-CS/native/${{ matrix.platform.name }}
if: runner.os != 'Windows'
- name: Prepare release (Windows)
run: cp install_output/bin/SDL2.dll SDL2-CS/native/${{ matrix.platform.name }}/SDL2.dll
if: runner.os == 'Windows'
- name: Prepare release (Linux)
run: cp install_output/lib/libSDL2-2.0.so.0 SDL2-CS/native/${{ matrix.platform.name }}/libSDL2.so
if: runner.os == 'Linux'
- name: Prepare release (macOS)
run: cp install_output/lib/libSDL2-2.0.dylib SDL2-CS/native/${{ matrix.platform.name }}/libSDL2.dylib
if: runner.os == 'macOS'
- name: Build and prepare release
run: SDL2-CS/ci/run.sh $PWD $PWD/SDL2-CS/native/${{ matrix.platform.name }} ${{ matrix.platform.arch }}
shell: bash
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
@ -130,11 +60,11 @@ jobs:
name: ios
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
repository: 'libsdl-org/SDL'
ref: 'SDL2'
- uses: actions/checkout@v3
repository: Ryujinx/SDL
ref: ${{ github.event.inputs.rev }}
- uses: actions/checkout@v4
with:
path: 'SDL2-CS'
- name: Build (iOS)

View file

@ -11,9 +11,9 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- uses: nuget/setup-nuget@v1

View file

@ -8,7 +8,7 @@
<Description>libSDL2 bindings for C#</Description>
<RootNamespace>SDL2</RootNamespace>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<VersionPrefix>2.27.0</VersionPrefix>
<VersionPrefix>2.30.0</VersionPrefix>
</PropertyGroup>
<PropertyGroup Label="NuGet">
<Authors>marysaka &amp; ppy Pty Ltd &amp; flibitijibibo</Authors>
@ -43,6 +43,11 @@
<PackagePath>runtimes/linux-x64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\linux-arm64\libSDL2.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>runtimes/linux-arm64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\ios\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>runtimes/ios/native</PackagePath>

109
ci/compile.sh Executable file
View file

@ -0,0 +1,109 @@
#!/bin/bash
set -e
if [ "$#" -le 1 ]; then
echo "usage: <sdl_dir> <output_path> [build_arch]"
exit 1
fi
uname_system="$(uname -s)"
case "${uname_system}" in
Linux*) system_name=linux;;
Darwin*) system_name=macos;;
CYGWIN*) system_name=win;;
MINGW*) system_name=win;;
*) system_name="Unknown OS: ${uname_system}"
esac
export DEBIAN_FRONTEND=noninteractive
sdl_dir=$1
output_path=$2
build_arch=$3
mkdir -p $output_path
if [ -z "$3" ]; then
if [ $system_name == "linux" ]; then
build_arch=$(dpkg --print-architecture)
else
echo "ERROR - build_arch parameter needed on macOS and Windows"
exit 1
fi
fi
if command -v sudo &> /dev/null
then
SUDO=sudo
fi
if [[ $system_name == "linux" ]]; then
if [[ $build_arch == "i386" ]]; then
sudo dpkg --add-architecture i386
export CFLAGS=-m32
export CXXFLAGS=-m32
fi
$SUDO apt-get update -y
$SUDO apt-get install -y \
build-essential \
cmake \
ninja-build \
wayland-scanner++ \
wayland-protocols \
pkg-config:$build_arch \
libasound2-dev:$build_arch \
libdbus-1-dev:$build_arch \
libegl1-mesa-dev:$build_arch \
libgl1-mesa-dev:$build_arch \
libgles2-mesa-dev:$build_arch \
libglu1-mesa-dev:$build_arch \
libibus-1.0-dev:$build_arch \
libpulse-dev:$build_arch \
libsdl2-2.0-0:$build_arch \
libsndio-dev:$build_arch \
libudev-dev:$build_arch \
libwayland-dev:$build_arch \
libx11-dev:$build_arch \
libxcursor-dev:$build_arch \
libxext-dev:$build_arch \
libxi-dev:$build_arch \
libxinerama-dev:$build_arch \
libxkbcommon-dev:$build_arch \
libxrandr-dev:$build_arch \
libxss-dev:$build_arch \
libxt-dev:$build_arch \
libxv-dev:$build_arch \
libxxf86vm-dev:$build_arch \
libdrm-dev:$build_arch \
libgbm-dev:$build_arch \
libpulse-dev:$build_arch \
libhidapi-dev:$build_arch \
libwayland-client++0:$build_arch \
libwayland-cursor++0:$build_arch
extra_cmake_flags="-GNinja"
elif [[ $system_name == "macos" ]]; then
extra_cmake_flags="-DCMAKE_OSX_ARCHITECTURES=\"$build_arch\" -DCMAKE_OSX_DEPLOYMENT_TARGET=\"11.0\""
elif [[ $system_name == "win" ]]; then
extra_cmake_flags="-A $build_arch"
fi
pushd $sdl_dir
cmake -B build -DCMAKE_BUILD_TYPE=Release -DSDL_SHARED_ENABLED_BY_DEFAULT=ON -DSDL_STATIC_ENABLED_BY_DEFAULT=ON $extra_cmake_flags
cmake --build build/ --config Release
$SUDO cmake --install build/ --prefix install_output --config Release
mkdir -p $output_path
if [[ $system_name == "linux" ]]; then
cp install_output/lib/libSDL2-2.0.so.0 $output_path/libSDL2.so
elif [[ $system_name == "macos" ]]; then
cp install_output/lib/libSDL2-2.0.dylib $output_path/libSDL2.dylib
elif [[ $system_name == "win" ]]; then
cp install_output/bin/SDL2.dll $output_path/SDL2.dll
fi
popd

41
ci/run.sh Executable file
View file

@ -0,0 +1,41 @@
#!/bin/bash
set -e
if [ "$#" -le 2 ]; then
echo "usage: <sdl_dir> <output_path> <build_arch>"
exit 1
fi
uname_system="$(uname -s)"
case "${uname_system}" in
Linux*) system_name=linux;;
Darwin*) system_name=macos;;
CYGWIN*) system_name=win;;
MINGW*) system_name=win;;
*) system_name="Unknown OS: ${uname_system}"
esac
sdl_dir=$1
output_path=$2
build_arch=$3
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
mkdir -p $output_path
if [ $system_name == "linux" ] && [ $build_arch == "arm64" ]; then
if command -v podman &> /dev/null; then
DOCKER=podman
elif command -v docker &> /dev/null; then
DOCKER=docker
else
echo "ERROR - Missing docker/podman env, cannot crossbuild"
exit 1
fi
$DOCKER run --rm -v $SCRIPT_DIR:/scripts -v $output_path:/output -v $sdl_dir:/source -t arm64v8/ubuntu:focal bash /scripts/compile.sh /source /output $build_arch
else
$SCRIPT_DIR/compile.sh "$sdl_dir" "$output_path" "$build_arch"
fi

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.