mirror of
https://github.com/Ryujinx/SDL.git
synced 2024-12-23 15:15:39 +00:00
4ca5ea5b7e
Downstream distributors can use this to mark a version with their preferred version information, like a Linux distribution package version or the Steam revision it was built to be bundled into, or just to mark it with the vendor it was built by or the environment it's intended to be used in. For instance, in Debian I'd use this by configuring with: --enable-vendor-info="${DEB_VENDOR} ${DEB_VERSION}" to get a SDL_REVISION like: release-2.24.1-0-ga1d1946dc (Debian 2.24.1+dfsg-2) which gives a Debian user enough information to track down the patches and build-time configuration that were used for package revision 2. In Autotools and CMake, this is a configure-time option like any other, and will go into both SDL_REVISION (via SDL_revision.h) and SDL_GetRevision(). In other build systems (MSVC, Xcode, etc.), defining the SDL_VENDOR_INFO macro will get it into the output of SDL_GetRevision(), although not SDL_REVISION. Resolves: https://github.com/libsdl-org/SDL/issues/6418 Signed-off-by: Simon McVittie <smcv@collabora.com>
82 lines
3.5 KiB
YAML
82 lines
3.5 KiB
YAML
name: Build (Android)
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
android:
|
|
name: ${{ matrix.platform.name }}
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
platform:
|
|
- { name: Android.mk }
|
|
- { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64" }
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: nttld/setup-ndk@v1
|
|
id: setup_ndk
|
|
with:
|
|
ndk-version: r21e
|
|
- name: Build (Android.mk)
|
|
if: ${{ matrix.platform.name == 'Android.mk' }}
|
|
run: |
|
|
./build-scripts/androidbuildlibs.sh
|
|
- name: Setup (CMake)
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install ninja-build pkg-config
|
|
- name: Configure (CMake)
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
cmake -B build \
|
|
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
|
|
-DSDL_WERROR=ON \
|
|
-DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
|
|
-DANDROID_ABI=${{ matrix.platform.android_abi }} \
|
|
-DSDL_STATIC_PIC=ON \
|
|
-DSDL_VENDOR_INFO="Github Workflow" \
|
|
-DCMAKE_INSTALL_PREFIX=prefix \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-GNinja
|
|
- name: Build (CMake)
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
cmake --build build --config Release --parallel --verbose
|
|
- name: Install (CMake)
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
cmake --install build --config Release
|
|
echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
|
|
( cd prefix; find ) | LC_ALL=C sort -u
|
|
- name: Verify CMake configuration files
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
cmake -S cmake/test -B cmake_config_build -G Ninja \
|
|
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup_ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
|
|
-DANDROID_PLATFORM=${{ matrix.platform.android_platform }} \
|
|
-DANDROID_ABI=${{ matrix.platform.android_abi }} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }}
|
|
cmake --build cmake_config_build --verbose
|
|
- name: Verify sdl2-config
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
|
|
export PATH=${{ env.SDL2_DIR }}/bin:$PATH
|
|
cmake/test/test_sdlconfig.sh
|
|
- name: Verify sdl2.pc
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
export CC="${{ steps.setup_ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=${{ matrix.platform.arch }}-none-linux-androideabi${{ matrix.platform.android_platform }}"
|
|
export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig
|
|
cmake/test/test_pkgconfig.sh
|
|
- name: Verify Android.mk
|
|
if: ${{ matrix.platform.name == 'CMake' }}
|
|
run: |
|
|
export NDK_MODULE_PATH=${{ env.SDL2_DIR }}/share/ndk-modules
|
|
ndk-build -C ${{ github.workspace }}/cmake/test APP_PLATFORM=android-${{ matrix.platform.android_platform }} APP_ABI=${{ matrix.platform.android_abi }} NDK_OUT=$PWD NDK_LIBS_OUT=$PWD V=1
|