Skip to content

Re-order CFLAGS to ensure local headers found first #36

Re-order CFLAGS to ensure local headers found first

Re-order CFLAGS to ensure local headers found first #36

Workflow file for this run

name: Continuous Integration
on: [push, pull_request, workflow_dispatch]
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
defaults:
run:
shell: ${{ matrix.config.shell }}
strategy:
fail-fast: false
matrix:
config:
- name: Linux GCC
os: ubuntu-latest
compiler: gcc
shell: bash
suffix: ""
src_package: true
- name: Linux Clang
os: ubuntu-latest
compiler: clang
shell: bash
suffix: ""
- name: MSYS2 MINGW64
os: windows-latest
compiler: gcc
shell: 'msys2 {0}'
msystem: mingw64
msys-env: mingw-w64-x86_64
suffix: "-win64"
- name: MSYS2 MINGW32
os: windows-latest
compiler: gcc
shell: 'msys2 {0}'
msystem: mingw32
msys-env: mingw-w64-i686
suffix: "-win32"
- name: macOS arm64
os: macos-13
compiler: clang
shell: bash
suffix: "-macos-x86_64"
- name: macOS x86-64
os: macos-latest
compiler: clang
shell: bash
suffix: "-macos-arm64"
steps:
- name: Install build dependencies (Chocolatey, Windows)
if: runner.os == 'Windows'
shell: cmd
run: choco install pandoc
- name: Install build dependencies (MSYS, Windows)
if: runner.os == 'Windows'
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.config.msystem }}
path-type: inherit
update: true
install: >-
autotools
base-devel
dos2unix
git
zip
${{ matrix.config.msys-env}}-gcc
${{ matrix.config.msys-env}}-python
${{ matrix.config.msys-env}}-SDL2
- name: Install build dependencies (Homebrew, macOS)
if: runner.os == 'macOS'
run: brew install sdl2 autoconf automake libtool pandoc
- name: Install build dependencies (apt, Linux)
if: runner.os == 'Linux'
run: |
sudo apt update
sudo apt -q install libsdl2-dev ${{ matrix.config.compiler }}
- uses: actions/checkout@v4
- name: Find Git version
id: version
run: |
if git describe --exact-match --tags >/dev/null; then
VERSION=$(git describe --exact-match --tags)
VERSION=${VERSION/#sdl-sopwith-/}
else
VERSION=$(git rev-parse --short HEAD)
VERSION=$VERSION${{ matrix.config.suffix }}
fi
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
# Patch the version in configure.ac:
sed -i.old "s/\(AC_INIT([^,]*, \)\[[^]]*\], /\1[$VERSION], /" \
configure.ac
- name: autogen
env:
CC: ${{ matrix.config.compiler }}
run: |
./autogen.sh
- name: make
run: make -j8
- name: make check
run: make check
- name: autotools distcheck
if: ${{ matrix.config.src_package }}
run: |
# This checks we can go through the entire process of generating
# a distribution package with autotools, and that the package can
# be built and installed successfully.
make -j8 distcheck
- name: Build source package
if: ${{ matrix.config.src_package }}
run: |
make dist
mkdir srcdist
mv *.tar.gz srcdist/
- name: Build package (Windows)
if: runner.os == 'Windows'
run: |
cd pkg/win32
make
- name: Upload source package
if: ${{ matrix.config.src_package }}
uses: actions/upload-artifact@v4
with:
path: "srcdist"
name: sdl-sopwith-src-${{steps.version.outputs.VERSION}}
- name: Upload build (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4
with:
path: "pkg/win32/staging"
name: sdl-sopwith-${{steps.version.outputs.VERSION}}
- name: Build package (macOS)
if: runner.os == 'macOS'
run: |
cd pkg/macos
make PACKAGE_VERSION=${{steps.version.outputs.VERSION}} \
PACKAGE_STRING="Sopwith build ${{steps.version.outputs.VERSION}}"
- name: Upload build (macOS)
if: runner.os == 'macOS'
uses: actions/upload-artifact@v4
with:
path: "pkg/macos/sdl-sopwith-${{steps.version.outputs.VERSION}}.dmg"
name: sdl-sopwith-${{steps.version.outputs.VERSION}}