Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore Android builds #103

Draft
wants to merge 3 commits into
base: ports
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions package/ci/android-x86-gles.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
#!/bin/bash
set -ev

git clone --depth 1 https://github.com/mosra/corrade.git
cd corrade

# Build native corrade-rc
mkdir build && cd build || exit /b
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$HOME/deps-native \
-DWITH_INTERCONNECT=OFF \
-DWITH_PLUGINMANAGER=OFF \
-DWITH_TESTSUITE=OFF \
-DWITH_UTILITY=OFF \
-G Ninja
ninja install
cd ..

# Crosscompile Corrade
mkdir build-android-x86 && cd build-android-x86
cmake .. \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=29 \
-DCMAKE_ANDROID_ARCH_ABI=x86 \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCMAKE_BUILD_TYPE=Release \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DWITH_INTERCONNECT=OFF \
-DWITH_TESTSUITE=OFF \
-G Ninja
ninja install
cd ../..

# Crosscompile Magnum
git clone --depth 1 https://github.com/mosra/magnum.git
cd magnum
mkdir build-android-x86 && cd build-android-x86
cmake .. \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=29 \
-DCMAKE_ANDROID_ARCH_ABI=x86 \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_FIND_ROOT_PATH="/opt/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot;$HOME/deps" \
-DCMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX=/i686-linux-android/29 \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCMAKE_PREFIX_PATH=$HOME/deps \
-DWITH_AUDIO=OFF \
-DWITH_DEBUGTOOLS=OFF \
-DWITH_MESHTOOLS=ON \
-DWITH_PRIMITIVES=ON \
-DWITH_SCENEGRAPH=ON \
-DWITH_SCENETOOLS=OFF \
-DWITH_SHADERS=ON \
-DWITH_SHADERTOOLS=OFF \
-DWITH_TEXT=OFF \
-DWITH_TEXTURETOOLS=OFF \
-DWITH_TRADE=ON \
-DWITH_VK=OFF \
-DWITH_ANDROIDAPPLICATION=ON \
-DWITH_ANYIMAGEIMPORTER=ON \
-DWITH_TGAIMPORTER=ON \
-DTARGET_GLES2=$TARGET_GLES2 \
-G Ninja
ninja install
cd ../..

# Crosscompile Magnum Integration
git clone --depth 1 https://github.com/mosra/magnum-integration.git
cd magnum-integration
mkdir build-android-x86 && cd build-android-x86
cmake .. \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=29 \
-DCMAKE_ANDROID_ARCH_ABI=x86 \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_FIND_ROOT_PATH="/opt/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot;$HOME/deps" \
-DCMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX=/i686-linux-android/29 \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCMAKE_PREFIX_PATH=$HOME/deps \
-G Ninja
ninja install
cd ../..

# Crosscompile Magnum Extras
git clone --depth 1 https://github.com/mosra/magnum-extras.git
cd magnum-extras
mkdir build-android-x86 && cd build-android-x86
cmake .. \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=29 \
-DCMAKE_ANDROID_ARCH_ABI=x86 \
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_FIND_ROOT_PATH="/opt/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot;$HOME/deps" \
-DCMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX=/i686-linux-android/29 \
-DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCMAKE_PREFIX_PATH=$HOME/deps \
-G Ninja
ninja install
cd ../..

# So Gradle can find our stuff, hopefully the Android binaries first
export CMAKE_PREFIX_PATH="$HOME/deps/;$HOME/deps-native/"

# Build the Triangle example
cd src/triangle
gradle build
cd ../..

# Build the Primitives example
cd src/primitives
gradle build
cd ../..

# Build the Textured Quad example
cd src/texturedquad
gradle build
cd ../..

# Build the Viewer example
cd src/viewer
gradle build
cd ../..
98 changes: 49 additions & 49 deletions package/ci/appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,56 +2,56 @@ clone_depth: 1

environment:
matrix:
- TARGET: desktop
COMPILER: msvc
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
APPVEYOR_JOB_NAME: ports-windows-msvc2015
ENABLE_VULKAN: OFF
- TARGET: desktop
COMPILER: msvc
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
APPVEYOR_JOB_NAME: ports-windows-msvc2017
ENABLE_VULKAN: OFF
- TARGET: desktop
COMPILER: msvc
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
APPVEYOR_JOB_NAME: ports-windows-msvc2019
ENABLE_VULKAN: ON
- TARGET: desktop
COMPILER: msvc
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
APPVEYOR_JOB_NAME: ports-windows-msvc2022
ENABLE_VULKAN: ON
- TARGET: desktop
COMPILER: mingw
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
APPVEYOR_JOB_NAME: ports-windows-mingw
ENABLE_VULKAN: ON
- TARGET: desktop-gles
COMPILER: msvc
TARGET_GLES2: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
APPVEYOR_JOB_NAME: ports-windows-gles2-msvc2019
- TARGET: desktop-gles
COMPILER: msvc
TARGET_GLES2: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
APPVEYOR_JOB_NAME: ports-windows-gles2-msvc2022
- TARGET: desktop-gles
COMPILER: msvc
TARGET_GLES2: OFF
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
APPVEYOR_JOB_NAME: ports-windows-gles3-msvc2019
- TARGET: desktop-gles
COMPILER: msvc
TARGET_GLES2: OFF
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
APPVEYOR_JOB_NAME: ports-windows-gles3-msvc2022
# Disabled because SDL_WinRTRunApp: identifier not found
#- TARGET: rt
#TARGET_GLES2: OFF
#- TARGET: desktop
#COMPILER: msvc
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
#APPVEYOR_JOB_NAME: ports-windows-msvc2015
#ENABLE_VULKAN: OFF
#- TARGET: desktop
#COMPILER: msvc
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
#APPVEYOR_JOB_NAME: ports-windows-msvc2017
#ENABLE_VULKAN: OFF
#- TARGET: desktop
#COMPILER: msvc
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
#APPVEYOR_JOB_NAME: ports-windows-msvc2019
#ENABLE_VULKAN: ON
#- TARGET: desktop
#COMPILER: msvc
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
#APPVEYOR_JOB_NAME: ports-windows-msvc2022
#ENABLE_VULKAN: ON
#- TARGET: desktop
#COMPILER: mingw
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
#APPVEYOR_JOB_NAME: ports-windows-rt-gles3-msvc2017
#APPVEYOR_JOB_NAME: ports-windows-mingw
#ENABLE_VULKAN: ON
#- TARGET: desktop-gles
#COMPILER: msvc
#TARGET_GLES2: ON
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
#APPVEYOR_JOB_NAME: ports-windows-gles2-msvc2019
#- TARGET: desktop-gles
#COMPILER: msvc
#TARGET_GLES2: ON
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
#APPVEYOR_JOB_NAME: ports-windows-gles2-msvc2022
#- TARGET: desktop-gles
#COMPILER: msvc
#TARGET_GLES2: OFF
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
#APPVEYOR_JOB_NAME: ports-windows-gles3-msvc2019
#- TARGET: desktop-gles
#COMPILER: msvc
#TARGET_GLES2: OFF
#APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
#APPVEYOR_JOB_NAME: ports-windows-gles3-msvc2022
## Disabled because SDL_WinRTRunApp: identifier not found
##- TARGET: rt
##TARGET_GLES2: OFF
##APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
##APPVEYOR_JOB_NAME: ports-windows-rt-gles3-msvc2017

install:
- cinst ninja
Expand Down
58 changes: 49 additions & 9 deletions package/ci/circleci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ executors:
# https://github.com/mosra/magnum/issues/413,
# https://github.com/emscripten-core/emscripten/pull/10161
- image: emscripten/emsdk:1.39.6-upstream
android-29:
machine:
image: android:202102-01

commands:
install-base-linux:
Expand Down Expand Up @@ -53,6 +56,19 @@ commands:
command: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install cmake ninja << parameters.extra >>

install-base-android:
parameters:
extra:
type: string
default: ""
steps:
- run:
name: Update apt and install base packages
# Compared to Docker images this needs sudo
command: |
sudo apt update
sudo apt install -y ninja-build << parameters.extra >>

install-gcc-4_8:
steps:
- run:
Expand Down Expand Up @@ -209,10 +225,32 @@ jobs:
- build:
script: emscripten.sh

ports-android-x86-gles2:
executor: android-29
environment:
# STUPID yml interprets unquoted ON as a boolean
TARGET_GLES2: "ON"
steps:
- install-base-android:
extra: wget
- build:
script: android-x86-gles.sh

ports-android-x86-gles3:
executor: android-29
environment:
# STUPID yml interprets unquoted OFF as a boolean
TARGET_GLES2: "OFF"
steps:
- install-base-android:
extra: wget
- build:
script: android-x86-gles.sh

ports-ios-gles3:
executor: xcode-11_5
environment:
# STUPID yml interprets unquoted ON as a boolean
# STUPID yml interprets unquoted OFF as a boolean
TARGET_GLES2: "OFF"
steps:
- install-base-macos:
Expand All @@ -224,11 +262,13 @@ workflows:
version: 2
build:
jobs:
- ports-linux
- ports-linux-gles2
- ports-linux-gles3
- ports-linux-nondeprecated
- ports-macos
- ports-emscripten-webgl1
- ports-emscripten-webgl2
- ports-ios-gles3
#- ports-linux
#- ports-linux-gles2
#- ports-linux-gles3
#- ports-linux-nondeprecated
#- ports-macos
#- ports-emscripten-webgl1
#- ports-emscripten-webgl2
- ports-android-x86-gles2
- ports-android-x86-gles3
#- ports-ios-gles3