Skip to content

Commit 6006076

Browse files
committed
Add SDL3 Image for android workflow file.
1 parent 17772d6 commit 6006076

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
name: Build SDL3 Image 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+
15+
- uses: actions/[email protected]
16+
with:
17+
repository: 'libsdl-org/SDL_image'
18+
path: 'SDLImage'
19+
ref: 'release-3.2.4'
20+
submodules: true
21+
22+
- uses: actions/[email protected]
23+
with:
24+
repository: 'libsdl-org/SDL'
25+
ref: 'release-3.2.10'
26+
path: 'SDLImage/SDL'
27+
28+
- name: Install dependencies on Ubuntu
29+
if: matrix.os == 'ubuntu-latest'
30+
run: |
31+
sudo apt-get update
32+
sudo apt-get install -y build-essential cmake ninja-build
33+
34+
- name: Setup Java
35+
uses: actions/setup-java@v3
36+
with:
37+
distribution: 'temurin'
38+
java-version: 17
39+
40+
- name: Install Android SDK Command-Line Tools
41+
run: |
42+
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O android-sdk-tools.zip
43+
unzip android-sdk-tools.zip -d tools
44+
mkdir $HOME/android-sdk/
45+
mkdir $HOME/android-sdk/cmdline-tools/
46+
mkdir $HOME/android-sdk/cmdline-tools/latest/
47+
mv ./tools/cmdline-tools/* $HOME/android-sdk/cmdline-tools/latest/
48+
chmod +x $HOME/android-sdk/cmdline-tools/latest/bin/*
49+
echo "ANDROID_HOME=$HOME/android-sdk" >> $GITHUB_ENV
50+
echo "ANDROID_SDK_ROOT=$HOME/android-sdk" >> $GITHUB_ENV
51+
52+
- name: Accept Android SDK Licenses
53+
run: |
54+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses
55+
56+
57+
- name: Install Specific Android NDK Version 26.3.11579264
58+
run: |
59+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --install "ndk;26.3.11579264"
60+
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.3.11579264" >> $GITHUB_ENV
61+
echo "PATH=$PATH:$ANDROID_HOME/ndk/26.3.11579264" >> $GITHUB_ENV
62+
63+
- name: Build for arm64-v8a
64+
run: |
65+
cd SDLImage/SDL
66+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
67+
-DCMAKE_SYSTEM_NAME=Android \
68+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
69+
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
70+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
71+
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
72+
-DCMAKE_ANDROID_API=21 \
73+
-DANDROID_NDK=$ANDROID_NDK_HOME \
74+
-DSDL_STATIC=OFF \
75+
-DSDL_SHARED=ON \
76+
-S ./ \
77+
-B ./build/arm64-v8a
78+
cmake --build ./build/arm64-v8a --config Release
79+
80+
- name: Build for x86_64
81+
run: |
82+
cd SDLImage/SDL
83+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
84+
-DCMAKE_SYSTEM_NAME=Android \
85+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
86+
-DCMAKE_ANDROID_ARCH_ABI=x86_64 \
87+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
88+
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
89+
-DCMAKE_ANDROID_API=21 \
90+
-DANDROID_NDK=$ANDROID_NDK_HOME \
91+
-DSDL_STATIC=OFF \
92+
-DSDL_SHARED=ON \
93+
-S ./ \
94+
-B ./build/x86_64
95+
cmake --build ./build/x86_64 --config Release
96+
97+
- name: Build SDL_image for arm64-v8a
98+
run: |
99+
cd SDLImage
100+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
101+
-DCMAKE_SYSTEM_NAME=Android \
102+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
103+
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
104+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
105+
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
106+
-DCMAKE_ANDROID_API=21 \
107+
-DSDL3_INCLUDE_DIR=./SDL/include \
108+
-DSDL3_LIBRARY=./SDL/build/arm64-v8a/libSDL3.so \
109+
-S ./ \
110+
-B ./build/arm64-v8a
111+
cmake --build ./build/arm64-v8a --config Release
112+
113+
- name: Build SDL_image for x86_64
114+
run: |
115+
cd SDLImage
116+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
117+
-DCMAKE_SYSTEM_NAME=Android \
118+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
119+
-DCMAKE_ANDROID_ARCH_ABI=x86_64 \
120+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
121+
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
122+
-DCMAKE_ANDROID_API=21 \
123+
-DSDL3_INCLUDE_DIR=./SDL/include \
124+
-DSDL3_LIBRARY=./SDL/build/x86_64/libSDL3.so \
125+
-S ./ \
126+
-B ./build/x86_64
127+
cmake --build ./build/x86_64 --config Release
128+
129+
- name: Upload Artifacts
130+
uses: actions/[email protected]
131+
with:
132+
name: sdl2-image-android-latest-all-artifacts
133+
path: |
134+
SDLImage/build/arm64-v8a/*.so
135+
SDLImage/build/x86_64/*.so
136+
if-no-files-found: ignore # 'warn' or 'ignore' or 'error'

0 commit comments

Comments
 (0)