#!/usr/bin/env bash

# If the package $1 is available, prints it. Otherwise prints $2.
# Useful for handling when a package is renamed on new versions of Debian/Ubuntu.
function aptIfElse {
    if apt-cache show $1 &>/dev/null; then
        echo $1
    else
        echo $2
    fi
}

PACKAGES=(
    # These are dependencies necessary for building WebKitGTK/WPE.
    autoconf
    automake
    autopoint
    autotools-dev
    bubblewrap
    cmake
    gawk
    gperf
    gtk-doc-tools
    intltool
    itstool
    libasound2-dev
    libatk1.0-dev
    libepoxy-dev
    libevent-dev
    libfile-copy-recursive-perl
    $(aptIfElse libgcrypt20-dev libgcrypt11-dev)
    libgstreamer1.0-dev
    libgstreamer-plugins-bad1.0-dev
    libgstreamer-plugins-base1.0-dev
    libjpeg-dev
    libkate-dev
    liblcms2-dev
    libopenjp2-7-dev
    libpng-dev
    libseccomp-dev
    libsqlite3-dev
    libsystemd-dev
    libtasn1-6-dev
    libtool
    libwayland-dev
    libwebp-dev
    libwoff-dev
    libxslt1-dev
    ninja-build
    patch
    ruby

    # These are dependencies necessary for running tests.
    apache2
    curl
    fonts-liberation
    gdb
    libcgi-pm-perl
    psmisc
    pulseaudio-utils
    python-gi
    ruby-highline
    ruby-json

    # These are dependencies necessary for building with the Flatpak SDK.
    flatpak

    # These are dependencies necessary for building the jhbuild.
    git
    gsettings-desktop-schemas-dev
    gyp
    libegl1-mesa-dev
    libexpat1-dev
    libfdk-aac-dev
    libgles2-mesa-dev
    liborc-0.4-dev
    libproxy-dev
    libpsl-dev
    libtool-bin
    libxml-libxml-perl
    python3-setuptools
    uuid-dev
    yasm

    # These are dependencies necessary for using webkit-patch.
    git-svn
    subversion

    # These are GStreamer plugins needed to play different media files.
    gstreamer1.0-gl
    gstreamer1.0-libav
    gstreamer1.0-plugins-bad
    gstreamer1.0-plugins-base
    gstreamer1.0-plugins-good
    gstreamer1.0-plugins-ugly
    gstreamer1.0-pulseaudio
)
