Skip to content

Commit 9b63f2d

Browse files
authored
Create cmake-sdl3-android.yml
1 parent 8725f33 commit 9b63f2d

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-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/checkout@v4.1.7
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/upload-artifact@v4.3.4
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'

0 commit comments

Comments
 (0)