mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-01 05:48:11 +03:00
264 lines
9.1 KiB
YAML
264 lines
9.1 KiB
YAML
name: Godot ANGLE static libs
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: ${{ matrix.name }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
# macOS and iOS
|
|
- name: 🍎 macOS x86_64
|
|
platform: macos
|
|
os: macos-latest
|
|
xcode: "26.1.1"
|
|
artifact-name: godot-angle-static-x86_64-macos-release
|
|
artifact-path-angle: bin/libANGLE.macos.x86_64.a
|
|
artifact-path-egl: bin/libEGL.macos.x86_64.a
|
|
artifact-path-gles: bin/libGLES.macos.x86_64.a
|
|
flags: arch=x86_64
|
|
|
|
- name: 🍎 macOS arm64
|
|
platform: macos
|
|
os: macos-latest
|
|
xcode: "26.1.1"
|
|
artifact-name: godot-angle-static-arm64-macos-release
|
|
artifact-path-angle: bin/libANGLE.macos.arm64.a
|
|
artifact-path-egl: bin/libEGL.macos.arm64.a
|
|
artifact-path-gles: bin/libGLES.macos.arm64.a
|
|
flags: arch=arm64
|
|
|
|
- name: 🍏 iOS x86_64 simulator
|
|
platform: ios
|
|
os: macos-latest
|
|
xcode: "26.1.1"
|
|
artifact-name: godot-angle-static-x86_64-ios-sim-release
|
|
artifact-path-angle: bin/libANGLE.ios.x86_64.simulator.a
|
|
artifact-path-egl: bin/libEGL.ios.x86_64.simulator.a
|
|
artifact-path-gles: bin/libGLES.ios.x86_64.simulator.a
|
|
flags: arch=x86_64 ios_simulator=yes
|
|
|
|
- name: 🍏 iOS arm64 simulator
|
|
platform: ios
|
|
os: macos-latest
|
|
xcode: "26.1.1"
|
|
artifact-name: godot-angle-static-arm64-ios-sim-release
|
|
artifact-path-angle: bin/libANGLE.ios.arm64.simulator.a
|
|
artifact-path-egl: bin/libEGL.ios.arm64.simulator.a
|
|
artifact-path-gles: bin/libGLES.ios.arm64.simulator.a
|
|
flags: arch=arm64 ios_simulator=yes
|
|
|
|
- name: 🍏 iOS arm64 device
|
|
platform: ios
|
|
os: macos-latest
|
|
xcode: "26.1.1"
|
|
artifact-name: godot-angle-static-arm64-ios-release
|
|
artifact-path-angle: bin/libANGLE.ios.arm64.a
|
|
artifact-path-egl: bin/libEGL.ios.arm64.a
|
|
artifact-path-gles: bin/libGLES.ios.arm64.a
|
|
flags: arch=arm64
|
|
|
|
# MinGW/LLVM libs using UCRT
|
|
- name: 🏁 Windows - MinGW/LLVM (UCRT) x86_64
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-x86_64-llvm-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_64.a
|
|
artifact-path-egl: bin/libEGL.windows.x86_64.a
|
|
artifact-path-gles: bin/libGLES.windows.x86_64.a
|
|
flags: use_mingw=yes arch=x86_64 use_llvm=yes mingw_prefix=$HOME/llvm-mingw
|
|
llvm: yes
|
|
|
|
- name: 🏁 Windows - MinGW/LLVM (UCRT) x86_32
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-x86_32-llvm-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_32.a
|
|
artifact-path-egl: bin/libEGL.windows.x86_32.a
|
|
artifact-path-gles: bin/libGLES.windows.x86_32.a
|
|
flags: use_mingw=yes arch=x86_32 use_llvm=yes mingw_prefix=$HOME/llvm-mingw
|
|
llvm: yes
|
|
|
|
- name: 🏁 Windows - MinGW/LLVM (UCRT) arm64
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-arm64-llvm-release
|
|
artifact-path-angle: bin/libANGLE.windows.arm64.a
|
|
artifact-path-egl: bin/libEGL.windows.arm64.a
|
|
artifact-path-gles: bin/libGLES.windows.arm64.a
|
|
flags: use_mingw=yes arch=arm64 use_llvm=yes mingw_prefix=$HOME/llvm-mingw
|
|
llvm: yes
|
|
|
|
# MSVC libs
|
|
- name: 🏁 Windows - MSVC x86_64
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-x86_64-msvc-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_64.lib
|
|
artifact-path-egl: bin/libEGL.windows.x86_64.lib
|
|
artifact-path-gles: bin/libGLES.windows.x86_64.lib
|
|
flags: use_mingw=no arch=x86_64
|
|
|
|
- name: 🏁 Windows - MSVC x86_32
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-x86_32-msvc-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_32.lib
|
|
artifact-path-egl: bin/libEGL.windows.x86_32.lib
|
|
artifact-path-gles: bin/libGLES.windows.x86_32.lib
|
|
flags: use_mingw=no arch=x86_32
|
|
|
|
- name: 🏁 Windows - MSVC arm64
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-arm64-msvc-release
|
|
artifact-path-angle: bin/libANGLE.windows.arm64.lib
|
|
artifact-path-egl: bin/libEGL.windows.arm64.lib
|
|
artifact-path-gles: bin/libGLES.windows.arm64.lib
|
|
flags: use_mingw=no arch=arm64
|
|
|
|
# MinGW/GCC libs using MSVCRT (MinGW 15 / CRT 13)
|
|
- name: 🏁 Windows - MinGW/GCC (MSVCRT) x86_64
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-x86_64-gcc-13-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_64.a
|
|
artifact-path-egl: bin/libEGL.windows.x86_64.a
|
|
artifact-path-gles: bin/libGLES.windows.x86_64.a
|
|
flags: use_mingw=yes arch=x86_64 mingw_prefix=C:/mingw64
|
|
mingw: yes
|
|
msys: mingw64
|
|
msysenv: x86_64
|
|
|
|
- name: 🏁 Windows - MinGW/GCC (MSVCRT) x86_32
|
|
platform: windows
|
|
os: windows-2025
|
|
artifact-name: godot-angle-static-x86_32-gcc-13-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_32.a
|
|
artifact-path-egl: bin/libEGL.windows.x86_32.a
|
|
artifact-path-gles: bin/libGLES.windows.x86_32.a
|
|
flags: use_mingw=yes arch=x86_32 mingw_prefix=C:/mingw32
|
|
mingw: yes
|
|
msys: mingw32
|
|
msysenv: i686
|
|
|
|
# MinGW/GCC libs using MSVCRT (MinGW 14 / CRT 12)
|
|
- name: 🏁 Windows - MinGW/GCC (MSVCRT) x86_64
|
|
platform: windows
|
|
os: windows-2022
|
|
artifact-name: godot-angle-static-x86_64-gcc-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_64.a
|
|
artifact-path-egl: bin/libEGL.windows.x86_64.a
|
|
artifact-path-gles: bin/libGLES.windows.x86_64.a
|
|
flags: use_mingw=yes arch=x86_64 mingw_prefix=C:/mingw64
|
|
mingw: yes
|
|
msys: mingw64
|
|
msysenv: x86_64
|
|
|
|
- name: 🏁 Windows - MinGW/GCC (MSVCRT) x86_32
|
|
platform: windows
|
|
os: windows-2022
|
|
artifact-name: godot-angle-static-x86_32-gcc-release
|
|
artifact-path-angle: bin/libANGLE.windows.x86_32.a
|
|
artifact-path-egl: bin/libEGL.windows.x86_32.a
|
|
artifact-path-gles: bin/libGLES.windows.x86_32.a
|
|
flags: use_mingw=yes arch=x86_32 mingw_prefix=C:/mingw32
|
|
mingw: yes
|
|
msys: mingw32
|
|
msysenv: i686
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
env:
|
|
XCODE_DEV_PATH: "/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'true'
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Select Xcode version
|
|
if: ${{ matrix.platform == 'macos' || matrix.platform == 'ios' }}
|
|
run: sudo xcode-select -switch "${XCODE_DEV_PATH}"
|
|
|
|
- name: Install SCons
|
|
run: |
|
|
python -m pip install scons==4.9.0
|
|
|
|
- name: Install mako
|
|
run: |
|
|
python -m pip install mako
|
|
|
|
- name: Setup MinGW/LLVM
|
|
if: ${{ matrix.platform == 'windows' && matrix.llvm == 'yes' }}
|
|
run: |
|
|
curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20250114/llvm-mingw-20250114-ucrt-x86_64.zip
|
|
unzip -q llvm-mingw-*.zip
|
|
rm llvm-mingw-*.zip
|
|
mv llvm-mingw-* "$HOME/llvm-mingw"
|
|
echo "$HOME/llvm-mingw/bin" >> $GITHUB_PATH
|
|
|
|
- name: Setup MinGW path
|
|
if: ${{ matrix.mingw == 'yes' }}
|
|
shell: bash
|
|
run: |
|
|
echo "C:/mingw32/bin" >> $GITHUB_PATH
|
|
|
|
- name: Prepare ANGLE source
|
|
shell: bash
|
|
run: |
|
|
./update_angle.sh
|
|
|
|
- name: Build ANGLE
|
|
run: |
|
|
scons platform=${{ matrix.platform }} ${{ matrix.flags }} optimize=speed
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.artifact-name }}
|
|
path: |
|
|
${{ matrix.artifact-path-angle }}
|
|
${{ matrix.artifact-path-egl }}
|
|
${{ matrix.artifact-path-gles }}
|
|
if-no-files-found: error
|
|
|
|
release:
|
|
name: 'Release'
|
|
|
|
needs: [build]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
steps:
|
|
- name: Download Artifacts
|
|
uses: actions/download-artifact@v4
|
|
|
|
- name: ZIP Artifacts
|
|
run: |
|
|
for i in */; do (cd "${i%/}"; zip -r "../${i%/}.zip" .; cd ..); done
|
|
|
|
- name: Create Release
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
allowUpdates: true
|
|
removeArtifacts: true
|
|
omitNameDuringUpdate: true
|
|
omitBodyDuringUpdate: true
|
|
artifacts: "*.zip"
|
|
artifactErrorsFailBuild: true
|