#!/bin/bash
# Copyright © 2019-2020 Collabora Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# (See debian/copyright)

set -e
set -u
set -x

case "$(dpkg --print-architecture)" in
    (amd64|i386)
        ;;
    (*)
        echo "1..0 # SKIP - not x86"
        exit 0
        ;;
esac

# Test that we can compile a simple project using meson and ninja.

tmpdir="$(mktemp -d)"
cleanup () {
    rm -fr "$tmpdir"
}
trap cleanup 0 INT QUIT ABRT PIPE TERM

# Meson wants a real locale
export LC_ALL=C.UTF-8

n=0
failed=

for compiler in \
    gcc \
    gcc-9 \
    gcc-10 \
; do
    for aux in \
        '' \
        binutils-2.35.txt \
    ; do
        n=$((n + 1))

        case "$compiler" in
            (gcc | gcc-10)
                # default version, guaranteed to be present in SDK
                ;;

            (*)
                if ! command -v "$compiler" >/dev/null; then
                    echo "ok $n # SKIP $compiler not in PATH"
                    continue
                fi
                ;;
        esac

        if \
            meson setup \
                --cross-file "${compiler}-m32.txt" \
                ${aux:+--cross-file "$aux"} \
                "$tmpdir/b" \
                "$(pwd)/examples/meson-glib" \
            && ninja -v -C "$tmpdir/b" \
            && "$tmpdir/b/hello" \
            && ninja -v -C "$tmpdir/b" clean \
        ; then
            echo "ok $n - $compiler ${aux:-default}"
        else
            echo "not ok $n - $compiler ${aux:-default}"
            failed=1
        fi

        rm -fr "$tmpdir/b"
    done
done

echo "1..$n"

if [ -n "$failed" ]; then
    exit 1
fi

# vim:set sw=4 sts=4 et ft=sh:
