Skip to content

wip cross linux arm64 2 #64

wip cross linux arm64 2

wip cross linux arm64 2 #64

Workflow file for this run

name: 'build'
on: [push, pull_request]
jobs:
Build:
env:
MSYSTEM: MINGW64
CHERE_INVOKING: 'yes'
MSYS: 'winsymlinks:native'
strategy:
fail-fast: false
matrix:
include:
#- platform: macos-x86_64
# runs_on: macos-12
# extra_configure_args: "--disable-cocoa --disable-coreaudio --python=python3.11"
# shell: bash -e {0}
# - platform: macos-arm64
# runs_on: macos-latest-xlarge
# extra_configure_args: "--disable-cocoa --disable-coreaudio"
# shell: bash -e {0}
# - platform: linux-amd64
# runs_on: ubuntu-20.04
# # Building with -Werror only on Linux as that breaks some features detection
# # in meson on macOS.
# extra_configure_args: "--extra-cflags=-Werror --disable-gtk"
# shell: bash -e {0}
- platform: linux-arm64
runs_on: ubuntu-20.04
# The blank docker-hub image for croossbuild packages instead of the heavy GitHub's one
container: ubuntu:20.04
extra_configure_args: "--disable-gtk --cross-prefix=aarch64-linux-gnu-"
shell: bash -e {0}
# - platform: win-x86_64
# runs_on: windows-2022
# extra_configure_args: ""
# shell: msys2 {0}
runs-on: ${{ matrix.runs_on }}
container: ${{ matrix.container }}
defaults:
run:
shell: ${{ matrix.shell }}
steps:
- uses: actions/checkout@v4
- name: Install prerequisites (Linux arm64)
if: ${{ matrix.platform == 'linux-arm64' }}
working-directory: .github/workflows/scripts
run: |
./prerequisites-cross-linux-arm64.sh
# - name: Install prerequisites (Linux x86_64)
# if: ${{ matrix.platform == 'linux-amd64' }}
# env:
# DEBIAN_FRONTEND: "noninteractive"
# run: |
# sudo apt-get install -y -q --no-install-recommends \
# binutils-dev \
# ninja-build \
# libgcrypt-dev \
# libglib2.0-dev \
# libpixman-1-dev \
# libslirp-dev
# - name: Install prerequisites (macOS)
# if: ${{ matrix.platform == 'macos-x86_64' || matrix.platform == 'macos-arm64' }}
# run: |
# brew install \
# ninja \
# libgcrypt \
# glib \
# pixman \
# pkg-config \
# python@3.11
# brew link --overwrite python@3.11
# - name: Install prerequisites (Windows)
# if : ${{ matrix.platform == 'win-x86_64' }}
# uses: msys2/setup-msys2@v2
# with:
# cache: true
# msystem: mingw64
# install: >-
# mingw-w64-x86_64-python
# mingw-w64-x86_64-ninja
# mingw-w64-x86_64-gcc
# mingw-w64-x86_64-glib2
# mingw-w64-x86_64-pkg-config
# mingw-w64-x86_64-pixman
# mingw-w64-x86_64-libgcrypt
# mingw-w64-x86_64-libslirp
# diffutils git
# - name: Patch meson.build (macOS)
# if: ${{ matrix.platform == 'macos-x86_64' || matrix.platform == 'macos-arm64' }}
# run: |
# sed -i '' "s/project('qemu', \['c'\],/project('qemu', ['c', 'objc'],/" meson.build
- name: Configure (Linux arm64)
if: ${{ matrix.platform == 'linux-arm64' }}
working-directory: .github/workflows/scripts
run: |
./configure-cross-linux-arm64.sh
- name: Build
run: |
ninja -C build
# - name: Package distribution archive
# run: |
# ninja -C build install
# find install/qemu/share/qemu -maxdepth 1 -mindepth 1 -not -name 'esp*.bin' -exec rm -rf {} \;
# mkdir -p dist
# export DIST_DIR=${PWD}/dist
# export ARCHIVE_NAME=qemu-${{ github.ref_name }}-${{ matrix.platform }}.tar.bz2
# cd install
# tar cjvf ${DIST_DIR}/${ARCHIVE_NAME} qemu
# cd ${DIST_DIR}
# shasum -a 256 *.tar.bz2 > ${ARCHIVE_NAME}.sha256