Skip to content

Feat: Compiling GeniusSDK for Android with Boost 1.85 #50

Feat: Compiling GeniusSDK for Android with Boost 1.85

Feat: Compiling GeniusSDK for Android with Boost 1.85 #50

Workflow file for this run

name: Release Build CI
# Controls when the workflow will run
# Triggers the workflow on push or pull request events and manually from the Actions tab
on: [push, pull_request, workflow_dispatch]
jobs:
Windows:
runs-on: windows-2019
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
path: 'GeniusSDK'
- name: Check out thirdparty repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/thirdparty'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'thirdparty'
submodules: 'recursive'
- name: Thirdparty Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/thirdparty/.build
- name: Thirdparty Configure CMake
working-directory: ${{github.workspace}}/thirdparty/.build
run: cmake -S ../build/Windows/ -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release
- name: Thirdparty Compile
working-directory: ${{github.workspace}}/thirdparty/.build
run: cmake --build . --config Release
- name: Check out SuperGenius repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/SuperGenius'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'SuperGenius'
- name: SuperGenius Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build
- name: SuperGenius Configure CMake
working-directory: ${{github.workspace}}/SuperGenius/.build
run: cmake -S ../build/Windows/ -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build
- name: SuperGenius Compile
working-directory: ${{github.workspace}}/SuperGenius/.build
run: cmake --build . --config Release
- name: SuperGenius Install
working-directory: ${{github.workspace}}/SuperGenius/.build
run: cmake --install .
- name: Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/GeniusSDK/.build
- name: Configure CMake
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: cmake -S ../build/Windows/ -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build -DSuperGenius_DIR=${{github.workspace}}/SuperGenius/.build/SuperGenius/lib/cmake/SuperGenius/
- name: Compile
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: cmake --build . --config Release
Linux:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
path: 'GeniusSDK'
- name: Check out thirdparty repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/thirdparty'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'thirdparty'
submodules: 'recursive'
- name: Thirdparty Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/thirdparty/.build
- name: Thirdparty Configure CMake
working-directory: ${{github.workspace}}/thirdparty/.build
run: cmake -S ../build/Linux/ -DCMAKE_BUILD_TYPE=Release
- name: Thirdparty Compile
working-directory: ${{github.workspace}}/thirdparty/.build
run: make -j8
- name: Check out SuperGenius repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/SuperGenius'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'SuperGenius'
- name: SuperGenius Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build
- name: SuperGenius Configure CMake
working-directory: ${{github.workspace}}/SuperGenius/.build
run: cmake -S ../build/Linux/ -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build
- name: SuperGenius Compile
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make -j8
- name: SuperGenius Install
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make install
- name: Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/GeniusSDK/.build
- name: Configure CMake
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: cmake -S ../build/Linux/ -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build -DSuperGenius_DIR=${{github.workspace}}/SuperGenius/.build/SuperGenius/lib/cmake/SuperGenius/
- name: Compile
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: make -j8
Android:
runs-on: ubuntu-latest
env:
ANDROID_NDK_HOME: ${{github.workspace}}/android-ndk/android-ndk-r23b
ANDROID_TOOLCHAIN: ${{github.workspace}}/android-ndk/android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/bin
NDK_URL: "https://dl.google.com/android/repository/android-ndk-r23b-linux.zip"
CC: clang
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
path: 'GeniusSDK'
- name: Download Android NDK
run: |
mkdir "${{github.workspace}}/android-ndk"
cd "${{github.workspace}}/android-ndk"
curl -o ndk.zip ${{ env.NDK_URL }}
unzip ndk.zip
rm ndk.zip
- name: Check out thirdparty repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/thirdparty'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'thirdparty'
submodules: 'recursive'
- name: Thirdparty Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/thirdparty/.build
- name: Thirdparty Configure CMake
working-directory: ${{github.workspace}}/thirdparty/.build
run: |
export ANDROID_NDK=${{env.ANDROID_NDK_HOME}}
export ANDROID_NDK_HOME=${{env.ANDROID_NDK_HOME}}
export ANDROID_TOOLCHAIN=${{env.ANDROID_TOOLCHAIN}}
export PATH=${{env.ANDROID_TOOLCHAIN}}:$PATH
cmake -S ../build/Android/ -DANDROID_ABI="armeabi-v7a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK
- name: Thirdparty Compile
working-directory: ${{github.workspace}}/thirdparty/.build
run: make -j8
- name: Check out SuperGenius repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/SuperGenius'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'SuperGenius'
- name: SuperGenius Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build
- name: SuperGenius Configure CMake
working-directory: ${{github.workspace}}/SuperGenius/.build
run: |
export ANDROID_NDK=${{env.ANDROID_NDK_HOME}}
export ANDROID_NDK_HOME=${{env.ANDROID_NDK_HOME}}
export ANDROID_TOOLCHAIN=${{env.ANDROID_TOOLCHAIN}}
export PATH=${{env.ANDROID_TOOLCHAIN}}:$PATH
cmake -S ../build/Android/ -DANDROID_ABI="armeabi-v7a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build
- name: SuperGenius Compile
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make -j8
- name: SuperGenius Install
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make install
- name: Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/GeniusSDK/.build
- name: Configure CMake
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: |
export ANDROID_NDK=${{env.ANDROID_NDK_HOME}}
export ANDROID_NDK_HOME=${{env.ANDROID_NDK_HOME}}
export ANDROID_TOOLCHAIN=${{env.ANDROID_TOOLCHAIN}}
export PATH=${{env.ANDROID_TOOLCHAIN}}:$PATH
cmake -S ../build/Android/ -DANDROID_ABI="armeabi-v7a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build -DSuperGenius_DIR=${{github.workspace}}/SuperGenius/.build/SuperGenius/lib/cmake/SuperGenius/
- name: Compile
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: make -j8
MacOS:
runs-on: macos-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
path: 'GeniusSDK'
# Workaround for arm64 build
- name: Ensure latest macOS SDK is used
run: |
sudo xcode-select --switch "$(find /Applications -mindepth 1 -maxdepth 1 ! -type l | grep "Xcode_[\.0-9]*app" | sort -V | tail -1)/Contents/Developer"
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
- name: Check out thirdparty repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/thirdparty'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'thirdparty'
submodules: 'recursive'
- name: Thirdparty Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/thirdparty/.build
- name: Thirdparty Configure CMake
working-directory: ${{github.workspace}}/thirdparty/.build
run: cmake -S ../build/OSX/ -DCMAKE_BUILD_TYPE=Release
- name: Thirdparty Compile
working-directory: ${{github.workspace}}/thirdparty/.build
run: make -j8
- name: Check out SuperGenius repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/SuperGenius'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'SuperGenius'
- name: SuperGenius Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build
- name: SuperGenius Configure CMake
working-directory: ${{github.workspace}}/SuperGenius/.build
run: cmake -S ../build/OSX/ -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build
- name: SuperGenius Compile
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make -j8
- name: SuperGenius Install
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make install
- name: Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/GeniusSDK/.build
- name: Configure CMake
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: cmake -S ../build/OSX/ -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build -DSuperGenius_DIR=${{github.workspace}}/SuperGenius/.build/SuperGenius/lib/cmake/SuperGenius/
- name: Compile
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: make -j8
iOS:
runs-on: macos-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
path: 'GeniusSDK'
- uses: actions/setup-python@v2
with:
python-version: '3.5' # Version range or exact version of a Python version to use, using SemVer's version range syntax
- name: Check out thirdparty repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/thirdparty'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'thirdparty'
submodules: 'recursive'
- name: Thirdparty Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/thirdparty/.build
- name: Thirdparty Configure CMake
working-directory: ${{github.workspace}}/thirdparty/.build
run: cmake -S ../build/iOS/ -DCMAKE_BUILD_TYPE=Release -DiOS_ABI=arm64-v8a -DIOS_ARCH="arm64" -DENABLE_ARC=0 -DENABLE_BITCODE=0 -DENABLE_VISIBILITY=1 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/thirdparty/build/iOS/iOS.cmake
- name: Thirdparty Compile
working-directory: ${{github.workspace}}/thirdparty/.build
run: make -j8
- name: Check out SuperGenius repository
uses: actions/checkout@v2
with:
repository: 'GeniusVentures/SuperGenius'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'SuperGenius'
- name: SuperGenius Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build
- name: SuperGenius Configure CMake
working-directory: ${{github.workspace}}/SuperGenius/.build
run: cmake -S ../build/iOS/ -DCMAKE_BUILD_TYPE=Release -DiOS_ABI=arm64-v8a -DIOS_ARCH="arm64" -DENABLE_ARC=0 -DENABLE_BITCODE=0 -DENABLE_VISIBILITY=1 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/SuperGenius/build/iOS/iOS.cmake -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build
- name: SuperGenius Compile
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make -j8
- name: SuperGenius Install
working-directory: ${{github.workspace}}/SuperGenius/.build
run: make install
- name: Create Build Directory
run: cmake -E make_directory ${{github.workspace}}/GeniusSDK/.build
- name: Configure CMake
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: cmake -S ../build/iOS/ -DCMAKE_BUILD_TYPE=Release -DiOS_ABI=arm64-v8a -DIOS_ARCH="arm64" -DENABLE_ARC=0 -DENABLE_BITCODE=0 -DENABLE_VISIBILITY=1 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/GeniusSDK/build/iOS/iOS.cmake -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build -DSuperGenius_DIR=${{github.workspace}}/SuperGenius/.build/SuperGenius/lib/cmake/SuperGenius/
- name: Compile
working-directory: ${{github.workspace}}/GeniusSDK/.build
run: make -j8