# Maintainer: Deon Spengler <deon at spengler dot co dot za>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: William Rea <sillywilly@gmail.com>
# Contributor: Hans Janssen <hans@janserv.xs4all.nl>

pkgname=flightgear
pkgver=2024.1.6
pkgrel=1
pkgdesc="An open-source, multi-platform flight simulator"
arch=(armv7h aarch64 x86_64)
depends=(libxmu libxi zlib openscenegraph libxrandr glu glew openal "simgear=$pkgver"
         systemd-libs speex speexdsp gsm sqlite libevent)
# flightgear-data used at compile time for translation
makedepends=(git boost cmake mesa sharutils plib qt6-base qt6-declarative
             qt6-svg qt6-tools flightgear-data vulkan-headers)
optdepends=('qt6-base: fgfs --launcher'
            'qt6-declarative: fgfs --launcher'
            'flightgear-data')
license=("GPL")
url="http://www.flightgear.org/"
source=("https://gitlab.com/flightgear/flightgear/-/archive/${pkgver}/flightgear-${pkgver}.tar.gz")
sha256sums=('9b1993cb6d8933a2f5b7376fe26b18e7c15de31b853a7aa39df49648869445f8')

prepare() {
  cd flightgear-$pkgver

  rm -rf build
  mkdir build
}

build() {
  cd flightgear-$pkgver/build

  # no -DSYSTEM_FLITE since flite1 is required
  CFLAGS+=" -ffile-prefix-map=${srcdir}=${DBGSRCDIR:-/usr/src/debug}"
  CXXFLAGS+=" -ffile-prefix-map=${srcdir}=${DBGSRCDIR:-/usr/src/debug}"
  # Based on warnings from LTO
  CFLAGS+=' -fno-strict-aliasing'
  CXXFLAGS+=' -fno-strict-aliasing'
  LDFLAGS+=' -fno-strict-aliasing'
  cmake .. -Wno-dev \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_INSTALL_LIBDIR=lib \
        -DFG_DATA_DIR="/usr/share/flightgear/data" \
        -DCMAKE_BUILD_TYPE=Release \
        -DFG_BUILD_TYPE=Release \
        -DEVENT_INPUT=On \
        -DSYSTEM_SQLITE=On \
        -DUSE_DBUS=On \
        -DSYSTEM_SPEEX=On \
        -DSYSTEM_GSM=On \
        -DSYSTEM_FLITE=Off \
        -DSYSTEM_HTS_ENGINE=Off \
        -DENABLE_AUTOTESTING=Off \
        -DDESKTOP_FILE_RUN_ARGS="--launcher --fg-root=/usr/share/flightgear/data"
  make
}

package() {
  cd flightgear-$pkgver/build
  make DESTDIR="$pkgdir" install

  install -Dm0644 ../package/flightgear.ico "$pkgdir"/usr/share/icons/flightgear.ico
  install -Dm0644 ../scripts/completion/fg-completion.bash "$pkgdir"/usr/share/bash-completion/completions/fgfs
  install -Dm0644 ../scripts/completion/fg-completion.zsh "$pkgdir"/usr/share/zsh/site-functions/_fgfs
  ln -sf flightgear "$pkgdir"/usr/share/FlightGear
}
