Build for Mac as well, both x86_64 and ARM64. #14
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: MeshOptimizer | |
on: [push, pull_request] | |
# Cancel in-progress builds on push to same branch / PR | |
# https://stackoverflow.com/a/72408109 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
# FFS, without the quotes it gets interpreted as 0.2. Who asked for numeric | |
# support in a config language?! | |
MESHOPTIMIZER_VERSION: "0.20" | |
jobs: | |
windows: | |
name: ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-2019] | |
steps: | |
- name: Install Ninja | |
uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Set up Visual Studio environment | |
uses: seanmiddleditch/gha-setup-vsdevenv@master | |
- name: Clone MeshOptimizer | |
uses: actions/checkout@v3 | |
with: | |
repository: zeux/meshoptimizer | |
ref: v${{ env.MESHOPTIMIZER_VERSION }} | |
path: meshoptimizer | |
- name: Build & install Debug | |
shell: cmd | |
run: | | |
cmake ^ | |
-DCMAKE_C_COMPILER=cl.exe ^ | |
-DCMAKE_BUILD_TYPE=Debug ^ | |
-DCMAKE_INSTALL_PREFIX=%CD:\=/%/install-debug ^ | |
-G Ninja -S meshoptimizer -B meshoptimizer-build-debug | |
ninja -C meshoptimizer-build-debug install | |
- name: Build & install Release | |
shell: cmd | |
run: | | |
cmake ^ | |
-DCMAKE_C_COMPILER=cl.exe ^ | |
-DCMAKE_BUILD_TYPE=Release ^ | |
-DCMAKE_INSTALL_PREFIX=%CD:\=/%/install ^ | |
-G Ninja -S meshoptimizer -B meshoptimizer-build | |
ninja -C meshoptimizer-build install | |
- name: Upload Debug artifacts | |
uses: actions/upload-artifact@v1 | |
with: | |
name: meshoptimizer-${{ env.MESHOPTIMIZER_VERSION }}-${{ matrix.os }}-debug | |
path: install-debug | |
- name: Upload Release artifacts | |
uses: actions/upload-artifact@v1 | |
with: | |
name: meshoptimizer-${{ env.MESHOPTIMIZER_VERSION }}-${{ matrix.os }} | |
path: install | |
windows-mingw: | |
name: windows-mingw | |
runs-on: windows-2019 | |
steps: | |
- name: Install Ninja | |
uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Set up MinGW environment | |
uses: msys2/setup-msys2@v2 | |
- name: Clone MeshOptimizer | |
uses: actions/checkout@v3 | |
with: | |
repository: zeux/meshoptimizer | |
ref: v${{ env.MESHOPTIMIZER_VERSION }} | |
path: meshoptimizer | |
- name: Build & install | |
shell: cmd | |
run: | | |
cmake ^ | |
-DCMAKE_C_COMPILER=gcc.exe ^ | |
-DCMAKE_BUILD_TYPE=Release ^ | |
-DCMAKE_INSTALL_PREFIX=%CD:\=/%/install ^ | |
-G Ninja -S meshoptimizer -B meshoptimizer-build | |
ninja -C meshoptimizer-build install/strip | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v1 | |
with: | |
name: meshoptimizer-${{ env.MESHOPTIMIZER_VERSION }}-windows-mingw | |
path: install | |
ubuntu: | |
name: ${{ matrix.os }} | |
runs-on: ${{ matrix.runs-on }} | |
container: ${{ matrix.container }} | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-18.04 | |
runs-on: ubuntu-latest | |
container: ubuntu:bionic-20220427 | |
steps: | |
- name: Install base build tools | |
# apt update is needed to fetch package lists | |
run: | | |
apt update | |
apt install -y ninja-build cmake g++ | |
- name: Clone MeshOptimizer | |
uses: actions/checkout@v3 | |
with: | |
repository: zeux/meshoptimizer | |
ref: v${{ env.MESHOPTIMIZER_VERSION }} | |
path: meshoptimizer | |
- name: Build & install | |
run: | | |
mkdir meshoptimizer-build && cd meshoptimizer-build | |
cmake ../meshoptimizer \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DCMAKE_INSTALL_PREFIX=$(pwd)/../install \ | |
-G Ninja | |
ninja install/strip | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v1 | |
with: | |
name: meshoptimizer-${{ env.MESHOPTIMIZER_VERSION }}-${{ matrix.os }} | |
path: install | |
mac: | |
name: ${{ matrix.os }} | |
runs-on: ${{ matrix.runs-on }} | |
strategy: | |
matrix: | |
include: | |
- os: macos11-x64-arm64 | |
runs-on: macos-11 | |
steps: | |
- name: Install base build tools | |
run: | | |
brew install ninja | |
- name: Clone MeshOptimizer | |
uses: actions/checkout@v3 | |
with: | |
repository: zeux/meshoptimizer | |
ref: v${{ env.MESHOPTIMIZER_VERSION }} | |
path: meshoptimizer | |
- name: Build & install | |
run: | | |
mkdir meshoptimizer-build && cd meshoptimizer-build | |
cmake ../meshoptimizer \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DCMAKE_INSTALL_PREFIX=$(pwd)/../install \ | |
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \ | |
-G Ninja | |
ninja install/strip | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v1 | |
with: | |
name: meshoptimizer-${{ env.MESHOPTIMIZER_VERSION }}-${{ matrix.os }} | |
path: install |