# Contributor: Florian B <mr.maxmeier at gmail dot com>
# Maintainer: Angelo Theodorou <encelo at gmail dot com>

pkgname=tracy
pkgver=0.13.1
pkgrel=1
pkgdesc="Real-time, nanosecond resolution frame profiler"
arch=('aarch64' 'i686' 'x86_64')
url="https://github.com/wolfpld/tracy"
license=('BSD-3-Clause')
depends=('wayland' 'libglvnd' 'libxkbcommon' 'freetype2' 'dbus' 'hicolor-icon-theme' 'intel-tbb'
         # 'capstone'
        )
makedepends=('pkgconf' 'git' 'cmake' 'wayland-protocols')
optdepends=('xdg-desktop-portal: file dialogs')
options=('!lto' 'staticlibs')
provides=('tracy' "libTracyClient.so")
conflicts=('tracy')
source=("git+$url#tag=v$pkgver")
sha256sums=('0fa47d5a5d06d25f0eba5c58cb82297554d4c7e0c577f10ad52d2df40c75ef17')

build() {
  cd tracy

  CFLAGS+=" -D__STDC_FORMAT_MACROS -ffile-prefix-map=${srcdir}=${DBGSRCDIR:-/usr/src/debug}"
  CXXFLAGS+=" -D__STDC_FORMAT_MACROS -ffile-prefix-map=${srcdir}=${DBGSRCDIR:-/usr/src/debug}"
  export CFLAGS
  export CXXFLAGS

  cmake -S . -B build-static -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=Off -DCMAKE_INSTALL_PREFIX=/usr -DNO_ISA_EXTENSIONS=On -DCMAKE_INSTALL_INCLUDEDIR=include/Tracy -DTRACY_PATCHABLE_NOPSLEDS=On
  make -C build-static
  cmake -S . -B build-shared -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=On -DCMAKE_INSTALL_PREFIX=/usr -DNO_ISA_EXTENSIONS=On -DCMAKE_INSTALL_INCLUDEDIR=include/Tracy -DTRACY_PATCHABLE_NOPSLEDS=On
  make -C build-shared
  cmake -S capture -B capture/build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNO_ISA_EXTENSIONS=On
  make -C capture/build
  cmake -S csvexport -B csvexport/build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNO_ISA_EXTENSIONS=On
  make -C csvexport/build
  cmake -S import -B import/build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNO_ISA_EXTENSIONS=On
  make -C import/build
  cmake -S profiler -B profiler/build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNO_ISA_EXTENSIONS=On
  make -C profiler/build
  cmake -S update -B update/build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNO_ISA_EXTENSIONS=On
  make -C update/build
}

package() {
  cd tracy

  DESTDIR="$pkgdir" make -C build-static install
  DESTDIR="$pkgdir" make -C build-shared install
  # DESTDIR="$pkgdir" make -C capture/build install
  # DESTDIR="$pkgdir" make -C csvexport/build install
  # DESTDIR="$pkgdir" make -C import/build install
  # DESTDIR="$pkgdir" make -C profiler/build install
  # DESTDIR="$pkgdir" make -C update/build install

  install -Dm755 capture/build/tracy-capture "$pkgdir"/usr/bin/tracy-capture
  install -Dm755 csvexport/build/tracy-csvexport "$pkgdir"/usr/bin/tracy-csvexport
  install -Dm755 import/build/tracy-import-chrome "$pkgdir"/usr/bin/tracy-import-chrome
  install -Dm755 import/build/tracy-import-fuchsia "$pkgdir"/usr/bin/tracy-import-fuchsia
  install -Dm755 profiler/build/tracy-profiler "$pkgdir"/usr/bin/tracy
  install -Dm755 update/build/tracy-update "$pkgdir"/usr/bin/tracy-update

  install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
  install -Dm644 extra/desktop/tracy.desktop "$pkgdir"/usr/share/applications/tracy.desktop
  install -Dm644 icon/icon.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/tracy.svg
  install -Dm644 extra/desktop/application-tracy.xml "$pkgdir"//usr/share/mime/packages/application-tracy.xml
  install -Dm644 icon/application-tracy.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/application-tracy.svg
}
