Skip to content

Generate libraries

Generate libraries #13

Workflow file for this run

name: Generate libraries
on:
workflow_dispatch:
jobs:
generate:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- name: Determine library paths
id: lib-paths
shell: bash
run: |
if [[ "$RUNNER_OS" == "Windows" ]]; then
OS="windows"
elif [[ "$RUNNER_OS" == "Linux" ]]; then
OS="linux"
elif [[ "$RUNNER_OS" == "macOS" ]]; then
OS="darwin"
else
echo "Unknown RUNNER_OS: $RUNNER_OS"
exit 1
fi
if [[ "$RUNNER_ARCH" == "X86" ]]; then
ARCH="386"
elif [[ "$RUNNER_ARCH" == "X64" ]]; then
ARCH="amd64"
elif [[ "$RUNNER_ARCH" == "ARM" ]]; then
ARCH="arm"
elif [[ "$RUNNER_ARCH" == "ARM64" ]]; then
ARCH="arm64"
else
echo "Unknown RUNNER_ARCH: $RUNNER_ARCH"
exit 1
fi
echo "cgo_path=cgo_${OS}_${ARCH}.go" >> $GITHUB_OUTPUT
echo "lib_path=lib/${OS}/${ARCH}" >> $GITHUB_OUTPUT
- name: Install dependencies
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get update && sudo apt-get install -y libx11-dev libxext-dev libxft-dev libxinerama-dev libxcursor-dev libxrender-dev libxfixes-dev libgl1-mesa-dev libglu1-mesa-dev
- name: Install MSYS2
if: matrix.os == 'windows-latest'
uses: msys2/setup-msys2@v2
with:
update: true
msystem: ucrt64
packboy: >-
toolchain:p
cmake:p
ninja:p
- name: Check out code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.20.x"
- name: Run go generate
run: go generate
- name: Archive generated files
uses: actions/upload-artifact@v3
with:
name: libs
path: |
${{ steps.lib-paths.outputs.lib_path }}/*.a
${{ steps.lib-paths.outputs.lib_path }}/FL/fl_config.h
include
${{ steps.lib-paths.outputs.cgo_path }}