Skip to content

Commit 822221f

Browse files
committed
2 parents 6abab5e + 9b63f2d commit 822221f

File tree

2 files changed

+199
-0
lines changed

2 files changed

+199
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: Build SDL3 Libraries (Android)
2+
3+
on: [workflow_dispatch]
4+
5+
jobs:
6+
build:
7+
runs-on: ${{ matrix.os }}
8+
strategy:
9+
matrix:
10+
include:
11+
- os: ubuntu-latest
12+
arch: x86_64
13+
steps:
14+
- uses: actions/[email protected]
15+
with:
16+
repository: 'libsdl-org/SDL'
17+
ref: 'preview-3.1.3'
18+
path: 'SDL'
19+
20+
- name: Install dependencies on Ubuntu
21+
if: matrix.os == 'ubuntu-latest'
22+
run: |
23+
sudo apt-get update
24+
sudo apt-get install -y build-essential cmake ninja-build
25+
26+
- name: Setup Java
27+
uses: actions/setup-java@v3
28+
with:
29+
distribution: 'temurin'
30+
java-version: 17
31+
32+
- name: Install Android SDK Command-Line Tools
33+
run: |
34+
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O android-sdk-tools.zip
35+
unzip android-sdk-tools.zip -d tools
36+
mkdir $HOME/android-sdk/
37+
mkdir $HOME/android-sdk/cmdline-tools/
38+
mkdir $HOME/android-sdk/cmdline-tools/latest/
39+
mv ./tools/cmdline-tools/* $HOME/android-sdk/cmdline-tools/latest/
40+
chmod +x $HOME/android-sdk/cmdline-tools/latest/bin/*
41+
echo "ANDROID_HOME=$HOME/android-sdk" >> $GITHUB_ENV
42+
echo "ANDROID_SDK_ROOT=$HOME/android-sdk" >> $GITHUB_ENV
43+
44+
- name: Accept Android SDK Licenses
45+
run: |
46+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses
47+
48+
49+
- name: Install Specific Android NDK Version 26.3.11579264
50+
run: |
51+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --install "ndk;26.3.11579264"
52+
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.3.11579264" >> $GITHUB_ENV
53+
echo "PATH=$PATH:$ANDROID_HOME/ndk/26.3.11579264" >> $GITHUB_ENV
54+
55+
- name: Build for arm64-v8a
56+
run: |
57+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
58+
-DCMAKE_SYSTEM_NAME=Android \
59+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
60+
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
61+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
62+
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
63+
-DCMAKE_ANDROID_API=21 \
64+
-DANDROID_NDK=$ANDROID_NDK_HOME \
65+
-DSDL_STATIC=OFF \
66+
-DSDL_SHARED=ON \
67+
-S SDL \
68+
-B SDL/build/arm64-v8a
69+
cmake --build SDL/build/arm64-v8a --config Release
70+
71+
- name: Build for x86_64
72+
run: |
73+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
74+
-DCMAKE_SYSTEM_NAME=Android \
75+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
76+
-DCMAKE_ANDROID_ARCH_ABI=x86_64 \
77+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
78+
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
79+
-DCMAKE_ANDROID_API=21 \
80+
-DANDROID_NDK=$ANDROID_NDK_HOME \
81+
-DSDL_STATIC=OFF \
82+
-DSDL_SHARED=ON \
83+
-S SDL \
84+
-B SDL/build/x86_64
85+
cmake --build SDL/build/x86_64 --config Release
86+
87+
- name: Upload Artifacts
88+
uses: actions/[email protected]
89+
with:
90+
name: sdl3-android-latest-all-artifacts
91+
path: |
92+
SDL/build/arm64-v8a/*.so
93+
SDL/build/x86_64/*.so
94+
if-no-files-found: ignore # 'warn' or 'ignore' or 'error'

.github/workflows/cmake-sdl3.yml

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
name: Build SDL3 Libraries
2+
3+
on: [workflow_dispatch]
4+
5+
jobs:
6+
build:
7+
runs-on: ${{ matrix.os }}
8+
strategy:
9+
matrix:
10+
include:
11+
- os: ubuntu-latest
12+
arch: x86_64
13+
cmake-arch: x64
14+
- os: linux
15+
arch: arm64
16+
cmake-arch: aarch64
17+
runner-label: self-hosted
18+
- os: windows-latest
19+
arch: x86_64
20+
cmake-arch: x64
21+
- os: windows-latest
22+
arch: x86
23+
cmake-arch: win32
24+
- os: windows-latest
25+
arch: arm64
26+
cmake-arch: arm64
27+
- os: macos-latest
28+
arch: x86_64
29+
cmake-arch: x86_64
30+
- os: macos-latest
31+
arch: arm64
32+
cmake-arch: arm64
33+
steps:
34+
- uses: actions/[email protected]
35+
with:
36+
repository: 'libsdl-org/SDL'
37+
ref: 'preview-3.1.3'
38+
path: 'SDL'
39+
40+
- name: Install dependencies on Ubuntu
41+
if: matrix.os == 'linux' || matrix.os == 'ubuntu-latest'
42+
run: |
43+
sudo apt-get update && sudo apt-get install -y \
44+
build-essential \
45+
cmake \
46+
libasound2-dev \
47+
libpulse-dev \
48+
libaudio-dev \
49+
libx11-dev \
50+
libxext-dev \
51+
libxrandr-dev \
52+
libxcursor-dev \
53+
libxfixes-dev \
54+
libxi-dev \
55+
libxinerama-dev \
56+
libxss-dev \
57+
libwayland-dev \
58+
libwayland-egl-backend-dev \
59+
libdbus-1-dev \
60+
libudev-dev \
61+
libgles2-mesa-dev \
62+
libegl1-mesa-dev \
63+
libgl1-mesa-dev \
64+
libibus-1.0-dev \
65+
fcitx-libs-dev \
66+
libsamplerate0-dev \
67+
ccache \
68+
libjack-jackd2-dev \
69+
libdrm-dev \
70+
libpipewire-0.3-dev \
71+
libvulkan-dev \
72+
libdecor-0-dev \
73+
qtwayland5 \
74+
libxkbcommon-dev \
75+
libsndio-dev
76+
77+
- name: Configure cimgui with CMake on Linux (x86_64)
78+
if: matrix.os == 'linux' || matrix.os == 'ubuntu-latest'
79+
run: cmake -S SDL -B SDL/build -DSDL_STATIC=OFF -DSDL_SHARED=ON
80+
81+
- name: Configure SDL3 with CMake for macOS ARM64
82+
if: matrix.os == 'macos-latest'
83+
run: cmake -S SDL -B SDL/build -DCMAKE_OSX_ARCHITECTURES=${{ matrix.cmake-arch }} -DSDL_STATIC=OFF -DSDL_SHARED=ON
84+
85+
- name: Configure cimgui with CMake for Windows
86+
if: matrix.os == 'windows-latest'
87+
run: cmake -S SDL -B SDL/build -A ${{ matrix.cmake-arch }} -DSDL_STATIC=OFF -DSDL_SHARED=ON -DCMAKE_SYSTEM_VERSION=10.0.26100.0
88+
89+
- name: Build SDL3
90+
run: cmake --build SDL/build --config Release
91+
92+
- name: Move Windows binaries
93+
if: matrix.os == 'windows-latest'
94+
run: |
95+
mv SDL/build/Release/*.dll SDL/build/
96+
97+
- name: Upload Artifacts
98+
uses: actions/[email protected]
99+
with:
100+
name: sdl3-${{ matrix.os }}-${{ matrix.arch }}-artifacts
101+
path: |
102+
SDL/build/*.dll
103+
SDL/build/*.so
104+
SDL/build/*.dylib
105+
if-no-files-found: ignore # 'warn' or 'ignore' or 'error'

0 commit comments

Comments
 (0)