Skip to content

Corrected to skip HTTP on iOS and Android and set the SDL2 to use the #178

Corrected to skip HTTP on iOS and Android and set the SDL2 to use the

Corrected to skip HTTP on iOS and Android and set the SDL2 to use the #178

Workflow file for this run

name: iOS
on:
push:
paths:
- 'src/**'
- 'example/**'
- '.github/workflows/ios.yml'
- 'CMakeList.txt'
- 'CMakeOptions.txt'
- 'cmake/**'
pull_request:
paths:
- 'src/**'
- 'example/**'
- '.github/workflows/ios.yml'
- 'CMakeList.txt'
- 'CMakeOptions.txt'
- 'cmake/**'
release:
types: [published]
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: macos-latest
strategy:
fail-fast: false
max-parallel: 1
matrix:
APPLE_SDK: ["iphoneos", "iphonesimulator"]
ARCH: ["arm64", "x86_64"]
exclude:
- APPLE_SDK: iphoneos
ARCH: x86_64
- APPLE_SDK: iphonesimulator
ARCH: arm64
env:
RELEASE_NAME: binocle-ios-${{ matrix.APPLE_SDK }}
BUILD_TYPE: Release
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Release Version
run: |
echo "RELEASE_NAME=binocle-${{ github.event.release.tag_name }}-ios-${{ matrix.APPLE_SDK }}" >> $GITHUB_ENV
shell: bash
if: github.event_name == 'release' && github.event.action == 'published'
- name: Setup latest Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Setup Environment
run: |
mkdir ${{github.workspace}}/build
cd ${{github.workspace}}/build
mkdir ${{ env.RELEASE_NAME }}
cd ${{ env.RELEASE_NAME }}
mkdir include
mkdir include/backend
mkdir lib
cd ../..
- name: Install system dependencies
run: brew install doxygen sphinx-doc graphviz
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: |
cmake -G Xcode -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D IOS=1 -D BINOCLE_HTTP=OFF -D BINOCLE_IOS_SDK=${{ matrix.APPLE_SDK }} -D BINOCLE_IOS_ARCH=${{ matrix.ARCH }}
- name: Build
shell: bash
working-directory: ${{github.workspace}}/build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
- name: Generate artefacts
run: |
cp -v ./src/binocle/core/*.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./src/binocle/core/backend/*.h ./build/${{ env.RELEASE_NAME }}/include/backend
cp -v ./build/src/libbinocle-static.a ./build/${{ env.RELEASE_NAME }}/lib
cd build
tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }}
- name: Upload artefacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.RELEASE_NAME }}.tar.gz
path: ./build/${{ env.RELEASE_NAME }}.tar.gz
- name: Upload artefact to release
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz
asset_name: ${{ env.RELEASE_NAME }}.tar.gz
asset_content_type: application/gzip
if: github.event_name == 'release' && github.event.action == 'published'