Feat: Android building for arm64-v8a #275
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- name: Checkout SuperGenius repository | |
uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
- name: Check out thirdparty repository | |
uses: actions/checkout@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.branch-name.outputs.current_branch }} | |
- 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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build | |
- name: 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: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
run: cmake --build . --config Release | |
Linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
- name: Check out thirdparty repository | |
uses: actions/checkout@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: develop | |
- 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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build | |
- name: 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: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
run: make -j8 | |
Android: | |
runs-on: ubuntu-latest | |
env: | |
ANDROID_NDK_HOME: ${{github.workspace}}/android-ndk/android-ndk-r25b | |
ANDROID_TOOLCHAIN: ${{github.workspace}}/android-ndk/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin | |
NDK_URL: "https://dl.google.com/android/repository/android-ndk-r25b-linux.zip" | |
CC: clang | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
- 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@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.branch-name.outputs.current_branch }} | |
- 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 | |
echo $PATH | |
echo $CC | |
ls -la $ANDROID_TOOLCHAIN | |
echo "Check clang path:" | |
which clang | |
env | |
cmake -S ../build/Android/ -DANDROID_ABI="arm64-v8a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang | |
- name: Thirdparty Compile | |
working-directory: ${{github.workspace}}/thirdparty/.build | |
run: make -j8 | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build | |
- name: 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 | |
echo $PATH | |
echo $CC | |
ls -la $ANDROID_TOOLCHAIN | |
echo "Check clang path:" | |
which clang | |
env | |
cmake -S ../build/Android/ -DANDROID_ABI="arm64-v8a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
run: make -j8 | |
- name: On error | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
if: ${{ failure() }} | |
run: cat example/graphsync_app/CMakeFiles/graphsync_app.dir/build.make | |
MacOS: | |
runs-on: macos-latest | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
# 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@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.branch-name.outputs.current_branch }} | |
- 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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
run: cmake -S ../build/OSX/ -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
run: make -j8 | |
iOS: | |
runs-on: macos-latest | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
- 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@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.branch-name.outputs.current_branch }} | |
- 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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/.build | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
run: cmake -S ../build/iOS/ -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ -DTHIRDPARTY_BUILD_DIR=${{github.workspace}}/thirdparty/.build -DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/SuperGenius/build/iOS/iOS.cmake -DiOS_ABI=arm64-v8a -DIOS_ARCH="arm64" -DENABLE_ARC=0 -DENABLE_BITCODE=0 -DENABLE_VISIBILITY=1 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/.build | |
run: make -j8 | |