# Maintainer: lilydjwg <lilydjwg@gmail.com>
# Contributor: Megumi_fox <megumifox@archlinuxcn.org>
# Contributor: Sven-Hendrik Haase <svenstaro@gmail.com>
# Contributor: hexchain <i@hexchain.org>

pkgname=telegram-desktop-lily
_pkgname=telegram-desktop
pkgver=7.0.9
_td_commit=022d60202e446ad1287b9fb68e687c8a0760788b
pkgrel=2
pkgdesc="Official Telegram Desktop client with lilydjwg's patch"
arch=('x86_64')
url="https://desktop.telegram.org/"
license=('GPL-3.0-or-later WITH OpenSSL-exception')
depends=(
  'abseil-cpp'
  'ada'
  'ffmpeg' 'libavfilter.so' 'libavformat.so' 'libavcodec.so' 'libavutil.so'
  'glib2'
  'glibc'
  'hicolor-icon-theme'
  'hunspell'
  'kcoreaddons'
  'libavif'
  'libfido2' 'libfido2.so'
  'libgcc'
  'libheif' 'libheif.so'
  'libjpeg-turbo' 'libjpeg.so'
  'libjxl' 'libjxl.so'
  'libpipewire' 'libpipewire-0.3.so'
  'libsrtp' 'libsrtp2.so'
  'libstdc++'
  'libxcb'
  'libxcomposite'
  'libxdamage'
  'libxext'
  'libxfixes'
  'libxkbcommon'
  'libxrandr'
  'libxtst'
  'libvpx' 'libvpx.so'
  'lz4'
  'minizip'
  'openal'
  'openh264' 'libopenh264.so'
  'openssl' 'libcrypto.so' 'libssl.so'
  'pipewire'
  'protobuf' 'libprotobuf-lite.so'
  'qt6-base=6.11.1'
  'qt6-imageformats'
  'qt6-svg'
  'rnnoise'
  'xxhash'
  'zlib'
)
makedepends=(
  'boost'
  'boost-libs'
  'cmake'
  'git'
  'glib2-devel'
  'gobject-introspection'
  'qt6-shadertools'
  'gperf'
  'libtg_owt'
  'microsoft-gsl'
  'ninja'
  'python'
  'range-v3'
  'tl-expected'
  'vulkan-headers'
)
optdepends=(
  'geoclue: geoinformation support'
  'crow-translate: translation provider'
  'webkit2gtk-4.1: embedded browser features provided by webkit2gtk-4.1'
  'webkitgtk-6.0: embedded browser features provided by webkitgtk-6.0 (Wayland only)'
  'xdg-desktop-portal: desktop integration'
)
provides=('telegram-desktop')
conflicts=('telegram-desktop')
replaces=('telegram-desktop-megumifox')
source=(
  "https://github.com/telegramdesktop/tdesktop/releases/download/v${pkgver}/tdesktop-${pkgver}-full.tar.gz"
  "git+https://github.com/tdlib/td.git#commit=${_td_commit}"
  "0001-don-t-use-embolded-font.patch"
  "0002-don-t-adjust-font-size-based-on-metrics.patch"
  "0001-add-TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME-back.patch"
  "0002-make-blockquote-markup-less-distractive.patch"
  "0003-make-animated-avatar-follow-power-settings.patch"
  "0004-don-t-ask-which-program-to-use-when-opening-a-file-w.patch"
  "hide_proxy_icon_byenv.patch"
)
sha512sums=('c5e97a146c903b3398b53a7451d86efcbb5f87a989586d20753c83e2cb1452b964ab1175b88977eb590b04bcffc14fc678eb9f6a629b7f6f7af522a0da811780'
            '45ef8f69708c46aef8e8d0301b8710467a208e43a9ebb5918152b49d24f9d6c8b69ca9a94f19c4e401f44e8d60706cd840832ce442ca1a839df942a7b88afde2'
            '7056767917a549e8f9a0605ed9134b20c923f0678fe0d2fc19b23587918e922d4e79d0852ec5c480fc4e45d0cadf945707719dc20813bafbeaf639e353dd4638'
            '419d91e0d289f52ef8397c26645cf2eb2698b2cb668cef2684b412f235c09c138db615404d8bfebbe7bfb46e639784615cc803dd6d2f285169df003208436cab'
            'bb0e706b7a2629ba6fae9b7c71cb5a3f292e568f8c8d845aeb2584835c849b232ff9b7886ec931e446d077f249e2587abc70868659a5d08f7d94dc431fa3f914'
            'f315cbe729c568c27c745e12c3061d4757b1a146db108afb184bc55c55e7aaa317408e7f609111a3f3e79aab3af320204dc6e63aa35221aad99228ee6fdf2454'
            '57182ca0ae0aba5bc7fbc474329d13062d9ec0c4cab0911abe13d19beaac73a4cafbe23f995c669596d6e6b9bbf2785da740450cfb8a62295a629dc843812b2c'
            '131eff0887513137be97f4ca04aa258f0a59df45e7bd1eb7ee6736c1e366ff887ada196f069ef8ddce1d4477189d531b24d5235cbefe0407ba42d164bbbed09f'
            '4cea9f3e8f93c607811f89f3569ce7e0df3af7bb96c8a8f71b15cb2efd2dfac0455126a5e87e81798ac714f3d3c969966df3a89280ac179f65a79e6420e454b8')
options=(!debug)

prepare() {
  patch -b -l -d tdesktop-$pkgver-full/Telegram/lib_ui -Np1 -i ${srcdir}/0001-don-t-use-embolded-font.patch
  patch -b -l -d tdesktop-$pkgver-full/Telegram/lib_ui -Np1 -i ${srcdir}/0002-don-t-adjust-font-size-based-on-metrics.patch
  patch -b -l -d tdesktop-$pkgver-full/ -Np1 -i ${srcdir}/0001-add-TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME-back.patch
  patch -b -l -d tdesktop-$pkgver-full/ -Np1 -i ${srcdir}/0002-make-blockquote-markup-less-distractive.patch
  patch -b -l -d tdesktop-$pkgver-full/ -Np1 -i ${srcdir}/0003-make-animated-avatar-follow-power-settings.patch
  patch -b -l -d tdesktop-$pkgver-full/ -Np1 -i ${srcdir}/0004-don-t-ask-which-program-to-use-when-opening-a-file-w.patch
  patch -b -l -d tdesktop-$pkgver-full/ -Np0 -i ${srcdir}/hide_proxy_icon_byenv.patch
}

build() {
  cmake -S td -B td/build \
    -DCMAKE_BUILD_TYPE=None \
    -DCMAKE_INSTALL_PREFIX="$PWD/td/install" \
    -Wno-dev \
    -DTD_E2E_ONLY=ON
  cmake --build td/build
  cmake --install td/build

  # Turns out we're allowed to use the official API key that telegram uses for
  # their snap builds:
  # https://github.com/telegramdesktop/tdesktop/blob/8fab9167beb2407c1153930ed03a4badd0c2b59f/snap/snapcraft.yaml#L87-L88
  # Thanks @primeos!
  cmake -B build -S tdesktop-$pkgver-full -G Ninja \
    -DCMAKE_VERBOSE_MAKEFILE=ON \
    -DCMAKE_INSTALL_PREFIX="/usr" \
    -Dtde2e_DIR="$PWD/td/install/lib/cmake/tde2e" \
    -DCMAKE_BUILD_TYPE=Release \
    -DTDESKTOP_API_ID=611335 \
    -DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c \
    -DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON
  # try again for gio erorrs like this:
  # /build/telegram-desktop-lily/src/build/gen/gio/_enums.hpp:3: error: unterminated #ifndef
  # 3 | #ifndef _GI_GIO__ENUMS_HPP_
  cmake --build build || cmake --build build
}

package() {
  DESTDIR="$pkgdir" cmake --install build
  ln -s Telegram "$pkgdir"/usr/bin/telegram-desktop
}
